题目
你得到一组数字,返回所有正数的总和。
示例[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码代码还是很生硬。