Monday, April 24, 2017

[Java][Exerice] CodingBat Array-2 > tenRun answer

For each multiple of 10 in the given array, change all the values following it to be that multiple of 10, until encountering another multiple of 10. So {2, 10, 3, 4, 20, 5} yields {2, 10, 10, 10, 20, 20}.

tenRun([2, 10, 3, 4, 20, 5]) → [2, 10, 10, 10, 20, 20]
tenRun([10, 1, 20, 2]) → [10, 10, 20, 20]
tenRun([10, 1, 9, 20]) → [10, 10, 10, 20]

Solution 1:
public int[] tenRun(int[] nums) {
  boolean ten = false;
  int tmp = 0;
 
  for (int i = 0; i < nums.length; i++) {
    if (nums[i] % 10 == 0) {
      tmp = nums[i];
      ten = true;
    }
    else if (nums[i] % 10 != 0 && ten) {
      nums[i] = tmp;
    }
  }
  return nums;
}
Solution 2:
 public int[] tenRun(int[] nums) {
  boolean ten = false;
  int temp = 0;
  for(int i=0;i<nums.length;i++){
    if(nums[i]%10==0){
      ten = true;
      temp = nums[i];
    }else{
      if(ten) nums[i] =temp;
    }
  }
  return nums;
}

Reference:
http://www.javaproblems.com/2013/11/java-array-2-tenrun-codingbat-solution.html

No comments :

Post a Comment