Wednesday, April 15, 2015

[Java][Answer] CodingBat Array-2 > sum13()

Return the sum of the numbers in the array, returning 0 for an empty array. Except the number 13 is very unlucky, so it does not count and numbers that come immediately after a 13 also do not count.

sum13([1, 2, 2, 1]) → 6
sum13([1, 1]) → 2
sum13([1, 2, 2, 1, 13]) → 6

Answer 1:
public int sum13(int[] nums) {
  int sum = 0;
  for(int i=0;i<nums.length;i++){
    if(nums[i]!=13){
      sum += nums[i];
      if(i>0){
        if(nums[i-1]==13) sum -= nums[i];
      }
    }
  }
  return sum;
}
Answer 2:
public int sum13(int[] nums) {
int sum =0;
  for (int i = 0;i <nums.length ;i++)
  {
  if (nums[i] != 13)
  sum+=nums[i];
  else if (nums[i] == 13 && i < nums.length -1 ) {
  nums[i]=0;
  nums[i+1] =0; }
  }
  return sum;
}
Reference
http://www.javaproblems.com/2012/12/coding-bat-java-array-2-sum13.html

No comments :

Post a Comment