56. 合并区间
代码随想录
56. 合并区间 - 力扣(LeetCode)
class Solution {public int[][] merge(int[][] intervals) {Arrays.sort(intervals,(a,b)->{if(a[0] == b[0])return a[1] - b[1];return a[0] - b[0];});List<int[]> result = new ArrayList<>();for(int i = 1;i < intervals.length;i++){if(intervals[i][0] > intervals[i - 1][1]){result.add(intervals[i - 1]);}else {intervals[i][0] = intervals[i - 1][0];intervals[i][1] = Math.max(intervals[i][1],intervals[i - 1][1]);}}result.add(intervals[intervals.length - 1]);return result.toArray(new int[0][]);}
}
738.单调递增的数字
738. 单调递增的数字 - 力扣(LeetCode)
代码随想录
class Solution {public int monotoneIncreasingDigits(int n) {String numStr = Integer.toString(n);char[] array = numStr.toCharArray();int flag = array.length;for(int i = array.length - 1;i > 0;i--){if(array[i - 1] > array[i]){array[i - 1]--;flag = i;}}for(int i = flag;i < array.length;i++){array[i] = '9';}return Integer.parseInt(String.valueOf(array));}
}
968.监控二叉树
968. 监控二叉树 - 力扣(LeetCode)
代码随想录
总结
class Solution {int result = 0;// 0无覆盖 1有摄像头 2有覆盖public int minCame(TreeNode root){if(root == null)return 2;//null设为有覆盖的情况int left = minCame(root.left);int right = minCame(root.right);if(left == 2 && right == 2)return 0;if(left == 0 || right == 0){//0 1的上面是1result++;return 1;}if(left == 1 || right == 1)return 2;return -1;}public int minCameraCover(TreeNode root) {if(minCame(root) == 0)result++;return result;}
}