【贪心算法5】

news/2025/3/16 19:20:58/

力扣738.单调递增的数字

链接: link

思路

遇到c[i]>c[i+1]则c[i]–,然后就是给c[i+1]赋值‘9’;需要注意的是star初值问题,可见注释部分。

class Solution {public int monotoneIncreasingDigits(int n) {String s = String.valueOf(n);char[] c = s.toCharArray();int star = c.length; // 这里初始化必须是c.length,不能为0,因为遇到1234这个测例会出问题for (int i = c.length - 2; i >= 0; i--) {if (c[i] > c[i + 1]) {c[i]--;star = i+1; // 记录下一位起始位置}}for(int i = star;i<c.length;i++){c[i] = '9';}return Integer.parseInt(String.valueOf(c));}
}

相似题型

思路

设计初衷:叶子节点不放摄像头,让其父节点放
三种状态0-无覆盖;1-有摄像头;2-有覆盖;
注意考虑null节点的状态
详细思路
968.监控二叉树
链接: link

/*** 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;* }* }*/
/** 0-无覆盖* 1-有摄像头* 2-有覆盖*/
class Solution {int res = 0;public int minCameraCover(TreeNode root) {if (afterorder(root) == 0) {res++;}return res;}public int afterorder(TreeNode root) {if (root == null) {return 2;}// 左int left = afterorder(root.left);int right = afterorder(root.right);// 如果左右节点都覆盖了的话, 中间节点就该为无覆盖if (left == 2 && right == 2) {return 0;} else if (left == 0 || right == 0) {// 左右节点都是无覆盖状态,中间节点为有摄像头res++;return 1;} else {// 左右节点至少有一个摄像头,中间节点有覆盖return 2;}}
}

http://www.ppmy.cn/news/1579637.html

相关文章

文生图技术的演进、挑战与未来:一场重构人类创造力的革命

摘要 文生图&#xff08;Text-to-Image Generation&#xff09;技术作为生成式人工智能&#xff08;Generative AI&#xff09;的核心分支&#xff0c;正在以颠覆性力量重塑内容生产范式。本文系统梳理文生图技术从早期实验到多模态大模型的演进路径&#xff0c;分析其在设计、…

【FC改版激龟快打】MUGEN 激龟快打-含下载地址、出招技能表

【FC改版激龟快打】MUGEN 激龟快打是一款基于经典FC游戏《激龟快打》的改版游戏&#xff0c;它继承了原版游戏的核心玩法&#xff0c;并在此基础上进行了创新和扩展。在这款改版游戏中&#xff0c;玩家可以体验到更加丰富的角色选择和更加多样化的战斗技能。 原版的《激龟快打》…

第5课 树莓派的Python IDE—Thonny

1. Thonny的特点 Thonny是一款面向初学者的Python IDE。它由爱沙尼亚的 Tartu 大学开发,其调试器是专为学习和教学编程而设计的。Thonny具有如下特点 易于上手。Thonny 内置了 Python 3.7,因此只需要一个简单的安装程序,你就可以开始学习编程了(如有必要,您还可以使用单独…

《Python实战进阶》No24: PyAutoGUI 实现桌面自动化

No24: PyAutoGUI 实现桌面自动化 摘要 PyAutoGUI 是一个跨平台的桌面自动化工具&#xff0c;能够模拟鼠标点击、键盘输入、屏幕截图与图像识别&#xff0c;适用于重复性桌面任务&#xff08;如表单填写、游戏操作、批量文件处理&#xff09;。本集通过代码截图输出日志的实战形…

MyBatis源码分析の配置文件解析

文章目录 前言一、SqlSessionFactoryBuilder1.1、XMLConfigBuilder1.2、parse 二、mappers标签的解析2.1、cacheElement2.1.1、缓存策略 2.2、buildStatementFromContext2.2.1、sql的解析 前言 本篇主要介绍MyBatis源码中的配置文件解析部分。MyBatis是对于传统JDBC的封装&…

【数学基础】线性代数#1向量和矩阵初步

本系列内容介绍&#xff1a; 主要参考资料&#xff1a; 《深度学习》[美]伊恩古德菲洛 等 著 《机器人数学基础》吴福朝 张铃 著 文章为自学笔记&#xff0c;仅供参考。 目录 标量、向量、矩阵和张量矩阵运算单位矩阵和逆矩阵线性相关和生成子空间范数特殊类型的矩阵和向量特征…

MyBatis一对多查询方式

在 MyBatis 中&#xff0c;一对多查询是指一个实体对象&#xff08;如 Order&#xff09;关联多个子对象&#xff08;如 OrderItem&#xff09;。这种关系在数据库中通常通过外键实现&#xff0c;而在 MyBatis 中可以通过 resultMap 的嵌套集合&#xff08;<collection>&…

负载均衡中四层和七层协议区别

https://www.cnblogs.com/liuzhongkun/p/17046936.html 在负载均衡&#xff08;Load Balancing&#xff09;中&#xff0c;四层&#xff08;L4&#xff09;负载均衡 和 七层&#xff08;L7&#xff09;负载均衡 是两种常见的方式&#xff0c;它们的区别主要体现在工作层级、处…