rohitpratapitm
BAN USEROne liner solution.
public char firstNonRepeatingCharacter(String s){
int i =0;
for(char c : s.toCharArray()){
if(s.indexOf(c,++i) < 0 ){
return c;
}
}
}
public static int find_lighter(int a[],int start, int end){
if(start == end) //exit condition
return start;
//divide this array into three.
int parts = (end+1-start)/3;
//store start and index of each part into temporary variable to avoid creation of new //arrays.
int firstStart = start;
int firstEnd = firstStart + parts-1;
int secondStart = firstEnd +1;
int secondEnd = secondStart +parts -1;
int thirdStart = secondEnd+1;
int thirdEnd = a.length-1;
//calculate sum
int sum1 = sum(a,firstStart,firstEnd);
int sum2 = sum(a,secondStart,secondEnd);
int sum3 = sum(a,thirdStart,thirdEnd);
if(sum1 == sum2){
//sum3 has the lighter
return find_lighter(a,thirdStart,thirdEnd);
}
else if(sum1 > sum2){
//sum2 has the lighter
return find_lighter(a,secondStart,secondEnd);
}else{
//sum1 has the lighter
return find_lighter(a,firstStart,firstEnd);
}
}
public static int sum(int a[],int start, int end){
int sum = 0;
for(int i=start;i<=end;i++){
sum = sum + a[i];
}
return sum;
}
- rohitpratapitm May 10, 2016