Wednesday, January 4, 2012

CodingBat Array-3

Some neat pieces of code:

seriesUp
public int[] seriesUp(int n) {
  int len=n*(n+1)/2, k=1,num=0;
  int[] result=new int[len];
  for (int i=0;i<n;i++){
    for (int j=0;j<k&&i+j<len;j++){
      result[num++]=j+1;
    }
    k++;
  }
  return result;
}


maxMirror
public int maxMirror(int[] nums) {
  int len=nums.length,count=0,max=0,k=0;
  for (int i=0;i<len;i++){
    count=0;
    for (int j=len-1;i+count<len&&j>-1;j--){
      if(nums[i+count]==nums[j]){
        count++;
      }
      else{
        if (count>0){
          max=Math.max(count,max);
          count=0;
        }
      }
    }
    max=Math.max(count,max);
  }
  return max;
}


countClumps

public int countClumps(int[] nums) {
  int len=nums.length,count=0,result=0;
  for (int i=0;i<len;i++){
    count=0;
    for (int j=i;j<len;j++){
      if (nums[i]==nums[j]){
        count++;
      }
    }
    if (count>1){
      result++;
      i+=count-2;
      count=0;
    }
  }
  return result;
}



No comments:

Post a Comment