代码随想录-贪心算法Part5
56、合并区间
class Solution { public int[][] merge(int[][] intervals) { List<int[]> result = new LinkedList<>(); Arrays.sort(intervals, (x, y) -> Integer.compare(x[0], y[0])); int start = intervals[0][0]; int end = intervals[0][1]; for (int i = 0; i < intervals.length; i++) { if (intervals[i][0] > end) { result.add(new int[]{start, end}); start = intervals[i][0]; end = intervals[i][1]; } else { end = Math.max(end, intervals[i][1]); } } result.add(new int[]{start, end}); return result.toArray(new int[result.size()][]); } }738、单调递增的数字
class Solution { public int monotoneIncreasingDigits(int n) { String s = String.valueOf(n); char[] c = s.toCharArray(); int start = s.length(); for (int i = s.length() - 2; i >= 0; i--) { if (c[i] > c[i + 1]) { c[i]--; start = i + 1; } } for (int i = start; i < s.length(); i++) { c[i] = '9'; } return Integer.parseInt(String.valueOf(c)); } }