738.单调递增的数字
题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
解题思路:一旦出现strNum[i - 1] > strNum[i]的情况(非单调递增),首先想让strNum[i - 1]--,然后strNum[i]给为9,这样这个整数就是89,即小于98的最大的单调递增整数。举个例子,数字:332,从前向后遍历的话,那么就把变成了329,此时2又小于了第一位的3了,真正的结果应该是299。
java:
class Solution { public int monotoneIncreasingDigits(int n) { String s = String.valueOf(n); char[] chars = s.toCharArray(); int start = s.length(); for (int i = s.length() - 2; i >= 0; i--) { if (chars[i] > chars[i + 1]) { chars[i]--; start = i+1; } } for (int i = start; i < s.length(); i++) { chars[i] = '9'; } return Integer.parseInt(String.valueOf(chars)); } }
968.监控二叉树
题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
java:
class Solution { int res=0; public int minCameraCover(TreeNode root) { if(minCame(root)==0){ res++; } return res; } public int minCame(TreeNode root){ if(root==null){ return 2; } int left=minCame(root.left); int right=minCame(root.right); if(left==2&&right==2){ return 0; }else if(left==0||right==0){ res++; return 1; }else{ return 2; } } }
猜你喜欢
网友评论
- 搜索
- 最新文章
- 热门文章