MAB
BAN USER
This is O(n) solution:
public void maxPrefix(int[]a){
int minSoFar=a[0];
int currentMin=a[0];
int maxPrefixSoFar=0;
int currentMaxPrefix=0;
for(int i=1; i<a.length; i++){
if(a[i]>currentMin){
currentMaxPrefix++;
}else{
if(currentMaxPrefix>maxPrefixSoFar){
maxPrefixSoFar=currentMaxPrefix;
minSoFar=currentMin;
}
if((a.length-i-1)<maxPrefixSoFar){
break;
}
currentMin=a[i];
currentMaxPrefix=0;
}
}
if(currentMaxPrefix>maxPrefixSoFar){
maxPrefixSoFar=currentMaxPrefix;
minSoFar=currentMin;
}
System.out.println("Element:\t"+minSoFar);
System.out.println("MaxPrefix:\t"+maxPrefixSoFar);
}
public void printMap(HashMap<String,List<String>> manEmp){
Set<String> keys = manEmp.keySet();
Set<String>printedKes=new HashSet<String>();
for(String key: keys){
if(!printedKes.contains(key)){
String level ="";
printedKes.addAll(printNestMap(manEmp,key,level));
}
}
}
private Set<String> printNestMap(HashMap<String,List<String>>manEmp, String man, String level){
Set<String>printedKes=new HashSet<String>();
System.out.println(level+"-"+man);
if(manEmp.containsKey(man)){
List<String> nestEmp= manEmp.get(man);
printedKes.add(man);
level+=" ";
for(int i=0;i<nestEmp.size();i++){
printedKes.addAll(printNestMap(manEmp,nestEmp.get(i),level));
}
}
return printedKes;
}
- MAB January 16, 2017public int[][] randMat(int size, int min, int max){
int[][] retMat=new int[size][size];
for(int i=0;i<size;i++){
for(int j=i;j<size;j++){
int exclude=min-1;
if(j>=2 && retMat[i][j-1]==retMat[i][j-2]){
exclude=retMat[i][j-2];
}
retMat[i][j]=getRand(min, max, exclude);
exclude=min-1;
if(i>=2 && retMat[i-1][j]==retMat[i-2][j]){
exclude=retMat[i-1][j];
}
retMat[j][i]=getRand(min, max,exclude);
}
}
return retMat;
}
private int getRand(int min, int max, int exclude){
int[] range= null;
if(exclude<min ||exclude>max){
range=new int[max-min+1];
}else{
range=new int[max-min];
}
int ptr=0;
for(int i=min; i<=max; i++){
if(i==exclude)
continue;
range[ptr++]=i;
}
int rand = ThreadLocalRandom.current().nextInt(1, (range.length) + 1)-1;
return range[randomNum];
}
O(n) solution
- MAB January 22, 2017