本文主要是介绍代码随想录day32:贪心part6,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- day32:贪心part6
- 738.单调递增的数字
- 968.监控二叉树
day32:贪心part6
738.单调递增的数字
class Solution {public int monotoneIncreasingDigits(int n) {String s = String.valueOf(n);char[] chars = s.toCharArray();int flag = chars.length;for (int i = chars.length - 2; i >= 0; i--) {if (chars[i] > chars[i + 1]) {chars[i]--;flag = i + 1;}}for (int i = flag; i < chars.length; i++)chars[i] = '9';return Integer.parseInt(String.valueOf(chars));}
}
968.监控二叉树
叶子节点的父节点放摄像头是最好的
后序遍历因为要从底往上
class Solution {int camera = 0;public int minCameraCover(TreeNode root) {if(minCamera(root) == 0) camera++;return camera;}// 0 无覆盖 1 有摄像头 2 有覆盖private int minCamera(TreeNode root) {if (root == null) return 2;int left = minCamera(root.left);int right = minCamera(root.right);// 左右都覆盖,父节点不用覆盖if (left == 2 && right == 2)return 0;// 左右有一个无覆盖,父节点需要有摄像头else if (left == 0 || right == 0) {camera++;return 1;} else return 2;// 其他情况,左右至少有一个有摄像头,父节点被覆盖了}
}
这篇关于代码随想录day32:贪心part6的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!