问题描述:
代码:
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
int n=matrix.length;
for(int i=0;i<n;i++){
int low=0,high=matrix[0].length-1;
while(low<=high){
int mid=(high-low)/2+low;
if(matrix[i][mid]==target)
{
return true;
}
else if(matrix[i][mid]>target){
high=mid-1;
}else{
low=mid+1;
}
}
}
return false;
}
}
思路:
二分法 yyds
问题描述:
代码:
class Solution {
public int eraseOverlapIntervals(int[][] intervals) {
Arrays.sort(intervals, (v1, v2) -> v1[1] - v2[1]);
List<List<Integer>> list = new ArrayList<List<Integer>>();
int n=intervals.length;
for(int i=0;i<n;i++){
int left=intervals[i][0];
int right=intervals[i][1];
List<Integer> ss = new ArrayList<>();
if(list.size()==0||list.get(list.size()-1).get(1)<=left){
ss.add(left);
ss.add(right);
list.add(ss);
}
}
return n-list.size();
}
}
思路:
首先用lamda表达式排序
然后合并区间
最后求差值