国内做贵金属返佣比较多的网站,直播网站开发核心技术,做网站怎样建立服务器,导视设计师参考资料#xff1a; https://programmercarl.com/0738.%E5%8D%95%E8%B0%83%E9%80%92%E5%A2%9E%E7%9A%84%E6%95%B0%E5%AD%97.html 738. 单调递增的数字
题目描述#xff1a;
当且仅当每个相邻位数上的数字 x 和 y 满足 x y 时#xff0c;我们称这个整数是单调递增的。… 参考资料 https://programmercarl.com/0738.%E5%8D%95%E8%B0%83%E9%80%92%E5%A2%9E%E7%9A%84%E6%95%B0%E5%AD%97.html 738. 单调递增的数字
题目描述
当且仅当每个相邻位数上的数字 x 和 y 满足 x y 时我们称这个整数是单调递增的。
给定一个整数 n 返回 小于或等于 n 的最大数字且数字呈 单调递增 。
示例 1:
输入: n 10
输出: 9
思路分析 从后往前遍历若两两不符合递增则前一位数值-1并将start‘9’开始的下标设为后一位的index
注意1. start初始为len考虑到如“1234”的情况 2.转为字符数组便于处理
代码实现
class Solution {public int monotoneIncreasingDigits(int n) {String sString.valueOf(n);char[] charss.toCharArray();int lenchars.length;int startlen;//9开始的下标for(int ilen-2;i0;i--){//后往前if(chars[i]chars[i1]){chars[i]--;starti1;}}for(int istart;ilen;i){chars[i]9;}return Integer.parseInt(String.valueOf(chars));}
} 968. 监控二叉树
题目描述
给定一个二叉树我们在树的节点上安装摄像头。
节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。
计算监控树的所有节点所需的最小摄像头数量。
示例 1 输入[0,0,null,0,0]
输出1
解释如图所示一台摄像头足以监控所有节点
思路分析
1. 后序遍历左右中每个叶子结点都要被监视到
2. 贪心叶子节点的父节点放监控最大范围的监控。
3. 每个节点的三种状态0无覆盖1有覆盖无放监控2放监控 。
4. 四种情况1左右孩子都是“1”则自己是“0”2左右孩子之一是“0”则自己是“2”3剩下的情况任一孩子是“2”则自己是“1” //4本应在root的上一个节点放监控但root没有上一个该情况在main()函数中处理。
代码实现
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
class Solution {int res;public int minCameraCover(TreeNode root) {res0;if(f(root)0) res;return res;}public int f(TreeNode cur){if(curnull) return 1;// 0:无覆盖// 1有覆盖无监控// 2有覆盖有监控// 后序遍历左右中int lf(cur.left);//左int rf(cur.right);//右//中if(l1 r1) return 0;if(l0 || r0){res;return 2;}return 1;}
}