一个字总结:难。
原题链接:738 单调递增的数字
看题解写的。
class Solution {
public int monotoneIncreasingDigits(int n) {
char[] str = Integer.toString(n).toCharArray();
int i = 1;
while (i < str.length && str[i - 1] <= str[i]) i++;
if (i < str.length) {
while (i > 0 && str[i - 1] > str[i]) {
str[i - 1] -= 1;
i--;
}
for (i++; i < str.length; ++i) {
str[i] = '9';
}
}
return Integer.parseInt(String.valueOf(str));
}
}
原题链接:968 监控二叉树
想不到思路,遂看题解,妙哉。
class Solution {
int ans;
public int minCameraCover(TreeNode root) {
return dfs(root) == 0 ? ans + 1 : ans;
}
private int dfs(TreeNode root) {
if (root == null) return 2;
int left = dfs(root.left), right = dfs(root.right);
if (left == 0 || right == 0) {
ans++;
return 1;
}
if (left == 1 || right == 1) return 2;
return 0;
}
}