我有以下片段
public int eraseOverlapIntervals(int[][] intervals) {
Comparator<int []> c = (e1,e2)->Integer.compare(e1[0],e2[0]);
Arrays.sort(intervals,c);
// Get max non overlapping intervals
int count = 1;
int []current = intervals[0];
for(int i = 1; i<intervals.length; i++) {
int []next = intervals[i];
if(current[1]<=next[0]) {
current = next;
count++;
} else {
if(current[1]>next[1]) {
current = next;
}
}
}
return intervals.length-count;
}
}
如何以纯函数式Java-8方式重写它?
3条答案
按热度按时间n3ipq98p1#
请花点时间在文档上,探索Java 8的功能,因为这样你会得到解决方案,但你不会学习。看看下面的解决方案,它可能会帮助你:
xjreopfe2#
请尝试以下操作。
b1uwtaje3#
您可以使用Java 8中引入的Stream API以函数式方式编写。这段代码已经用函数重新写好了,希望对你的例子有帮助:
我已经重新编辑了我的回答诚实编译错误。我希望这个答案将有所帮助