static int findMissingNumber(int start, int end, List<Integer> list) { /* * Collections.sort(list); for (int item : list) { if(start != (int)item) { * return start; } start++; } return end; */ /* * for (int i=start; i<=end; i++) { if (!list.contains(i)) { return i; } } * return 0; */ int sum = list.stream().reduce(Integer::sum).orElse(0); return (start+end)*(end-start+1)/2-sum; }
您这个写法真的简洁,就是一半时候没理解语法。。。。
java8 的流特性。。。学习了
流+等差数列求和公式,厉害
最后return如果数组长度为奇数就不对了
return (start+end)*(end-start+1)/2-sum;
Sign in to make a reply
日落有星