Leetcode 题组 42

news/2025/2/6 20:30:30/

738. 单调递增的数字

给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。

(当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。)

示例 1:

输入: N = 10
输出: 9

 分析:

这道题是今年某大厂的一道笔试题,印象很深刻,因为没做出来。

这道题的思路比较简单,就是找到第一个不严格递增(小于下一个)的数字,让他 -1 ,然后后续数字都变为 9 就好了。不过该怎么找当时第一个不递增的数字呢?从前向后找肯定不行,举例来说,332 -> 329 但是由于 第二位 -1 以后,第一位和第二位又出现了矛盾,于是我们不能从前往后找,那么从后往前找行不行呢? 还是以 332 举例,从后往前找第一位是 2 ,因为 3 大于 2, 所以 变为 329,然后再找第二位是 2 (第2位已经变化了!),因为 3 大于 2, 所以变为 299。正解。

class Solution {
public:int monotoneIncreasingDigits(int n) {string strNum = to_string(n);int flag = strNum.size();for (int i = flag-1; i > 0; --i) {if (strNum[i-1] > strNum[i]) {flag = i;strNum[i-1]--;}}for (int i = flag; i < strNum.size(); ++i) strNum[i] = '9';return stoi(strNum);}
};

 968. 监控二叉树

给定一个二叉树,我们在树的节点上安装摄像头。

节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。

计算监控树的所有节点所需的最小摄像头数量。

示例 1:

输入:[0,0,null,0,0]
输出:1
解释:如图所示,一台摄像头足以监控所有节点。

 

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:int result;int dfs(TreeNode* cur) {if (cur==NULL) return 2;int left = dfs(cur->left);int right = dfs(cur->right);if (left == 2 && right == 2) {return 0;}if (left == 0 || right == 0) {++result;return 1;}if (left ==1 || right == 1) {return 2;}return -1;}int minCameraCover(TreeNode* root) {if (dfs(root) == 0) return result+1;else return result;}
};

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

相关文章

GNOME 42

目前处于测试阶段的 GNOME 42 将于 2022 年 3 月 23 日发布。Fedora 36 和 Ubuntu 22.04 将包含此版本的流行Linux 桌面环境。我们把它转起来看看有什么新东西。 GNOME、GTK4 和 libadwaita GNOME 40带来了具有水平主题和布局的新工作流程。GNOME 41通过引入libadwaita共享库…

50-42

50题 第42天 二叉搜索树中第K小的元素 给定一个二叉搜索树&#xff0c;编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明&#xff1a;你可以假设 k 总是有效的&#xff0c;1 ≤ k ≤ 二叉搜索树元素个数。链接: 力扣.我的代码如下&#xff1a; /*** Definition f…

42点问题(枚举)

枚举要思维清晰&#xff0c;一般来说遇见数学问题的解答&#xff0c;没有充足的数学理论会难以下手&#xff0c; 枚举也是一门技巧&#xff0c;但是数据量一大时&#xff0c;TLE是必然的&#xff0c;对于oi赛制&#xff0c;捞部分的分是需要技巧的 题目描述 众所周知在扑克牌…

43

package com.haizhitao.awt;import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame;public class MyFlow {private Frame frame;private Button button1, button2, button3;public void go(){frame new Frame("Flow Layout");//使用Layout替换…

数学关系式2x=10的python表达式为_24

【简答题】(6.4)请说明casode放大器、CD-CS(CC-CE)、CD-CE放大器及达林顿电路的特征? 【单选题】切除肾上腺引起动物死亡的原因,主要是由于缺乏 【单选题】为了给整形变量x、y、z赋初值,下面正确的Python赋值语句是: 【单选题】10 【单选题】Questions 3 and 4 will be based …

42 点问题

枚举每次运算后的结果与下一次的结果运算 #include <iostream> #include <vector> using namespace std;int a[10]; vector <int> ans[10];int main(){for(int i0; i<6; i){char c;cin>>c;if(cA) a[i]1;else if(cJ) a[i]11;else if(cQ) a[i]12;els…

04 23

全选单选按钮 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width…

random_state = 42

随机数种子 随机种子&#xff08;Random Seed&#xff09;是计算机专业术语&#xff0c;一种以随机数作为对象的以真随机数&#xff08;种子&#xff09;为初始条件的随机数。一般计算机的随机数都是伪随机数&#xff0c;以一个真随机数&#xff08;种子&#xff09;作为初始条…