每日一练13——Java返回一组数字的所有正数总和(8kyu)

题目

你得到一组数字,返回所有正数的总和。
示例[1,-4,7,12]=>1 + 7 + 12 = 20
注意:数组可能是空的,在这种情况下返回 0。

测试用例:

import org.junit.Test;
import static org.junit.Assert.assertEquals;
import org.junit.runners.JUnit4;

public class SolutionTest {
    @Test
    public void testSomething() {
        assertEquals(15, Positive.sum(new int[]{1,2,3,4,5}));
        assertEquals(13, Positive.sum(new int[]{1,-2,3,4,5}));
        assertEquals(0, Positive.sum(new int[]{}));
        assertEquals(0, Positive.sum(new int[]{-1,-2,-3,-4,-5}));
        assertEquals(9, Positive.sum(new int[]{-1,2,3,4,-5}));
    }
}

解答

我答:

public class Positive{
  public static int sum(int[] arr){
    int sum = 0;
    for(int i = 0; i < arr.length; i++){
      if(arr[i]>0){
        sum += arr[i];
      }
    }
    return sum;
  }
}

别人:

public class Positive{
  public static int sum(int[] arr){
      return java.util.Arrays.stream(arr).filter(v -> v > 0).sum();
  }
}

思考

不用IDE码代码还是很生硬。

你可能感兴趣的:(每日一练13——Java返回一组数字的所有正数总和(8kyu))