国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Day32- 貪心算法part06

這篇具有很好參考價(jià)值的文章主要介紹了Day32- 貪心算法part06。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

?一、單調(diào)遞增的數(shù)字

題目一:738. 單調(diào)遞增的數(shù)字?

738. 單調(diào)遞增的數(shù)字

當(dāng)且僅當(dāng)每個(gè)相鄰位數(shù)上的數(shù)字?x?和?y?滿足?x <= y?時(shí),我們稱這個(gè)整數(shù)是單調(diào)遞增的。

給定一個(gè)整數(shù)?n?,返回?小于或等于?n?的最大數(shù)字,且數(shù)字呈?單調(diào)遞增?。

從高位到低位遍歷整數(shù) n 的每一位數(shù)字,當(dāng)發(fā)現(xiàn)某一位數(shù)字大于其后一位數(shù)字時(shí),將這一位數(shù)字減一,并將所有更低位的數(shù)字設(shè)置為 9,以確保結(jié)果是單調(diào)遞增的。

/*
 * @lc app=leetcode.cn id=738 lang=cpp
 *
 * [738] 單調(diào)遞增的數(shù)字
 */

// @lc code=start
class Solution {
public:
    int monotoneIncreasingDigits(int n) {
        string str = to_string(n);
        int marker = str.size();

        for (int i = str.size() - 1; i > 0; i--) {
            if (str[i] < str[i - 1]) {
                marker = i;
                str[i - 1] = str[i - 1] - 1;
            }
        }

        for (int i = marker; i < str.size(); i++) {
            str[i] = '9';
        }

        return stoi(str);
    }
};
// @lc code=end

二、監(jiān)控二叉樹(shù)

題目一:968. 監(jiān)控二叉樹(shù)

968. 監(jiān)控二叉樹(shù)

給定一個(gè)二叉樹(shù),我們?cè)跇?shù)的節(jié)點(diǎn)上安裝攝像頭。

節(jié)點(diǎn)上的每個(gè)攝影頭都可以監(jiān)視其父對(duì)象、自身及其直接子對(duì)象。

計(jì)算監(jiān)控樹(shù)的所有節(jié)點(diǎn)所需的最小攝像頭數(shù)量。

基本思路是從葉子節(jié)點(diǎn)開(kāi)始向上,盡量在每個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn)上安裝攝像頭,以覆蓋盡可能多的節(jié)點(diǎn)。這樣可以保證使用最少的攝像頭覆蓋所有節(jié)點(diǎn)。

可以定義三種狀態(tài):文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-815201.html

  1. 0:這個(gè)節(jié)點(diǎn)尚未被覆蓋。
  2. 1:這個(gè)節(jié)點(diǎn)有一個(gè)攝像頭。
  3. 2:這個(gè)節(jié)點(diǎn)已被覆蓋,但沒(méi)有攝像頭。
/*
 * @lc app=leetcode.cn id=968 lang=cpp
 *
 * [968] 監(jiān)控二叉樹(shù)
 */

// @lc code=start
/**
 * 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 minCameraCover(TreeNode* root) {
        int cameras = 0;
        int top = dfs(root, cameras);
        return cameras + (top == 0 ? 1 : 0);
    }

private:
    int dfs(TreeNode* node, int& cameras) {
        if (!node) return 2;

        int left = dfs(node->left, cameras);
        int right = dfs(node->right, cameras);

        if (left == 0 || right == 0) {
            cameras++;
            return 1;
        }

        return (left == 1 || right == 1) ? 2 : 0;
    }
};
// @lc code=end

到了這里,關(guān)于Day32- 貪心算法part06的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 代碼隨想錄 day38 第九章 動(dòng)態(tài)規(guī)劃part01

    ●??理論基礎(chǔ) ●??509.?斐波那契數(shù) ●??70.?爬樓梯 ●??746.?使用最小花費(fèi)爬樓梯 理論基礎(chǔ) 解決動(dòng)態(tài)規(guī)劃必須要想清楚的點(diǎn) dp數(shù)組以及下標(biāo)的含義 遞推公式 dp數(shù)組如何初始化 遍歷順序 打印數(shù)組 檢查結(jié)果 關(guān)聯(lián) leetcode 509.?斐波那契數(shù) 思路 動(dòng)規(guī)五部曲 dp數(shù)組以及下標(biāo)的含義

    2024年04月17日
    瀏覽(30)
  • 代碼隨想錄——貪心算法

    代碼隨想錄——貪心算法

    代碼隨想錄——回溯 代碼隨想錄——貪心算法 分發(fā)餅干 鏈接:https://leetcode.cn/problems/assign-cookies/description/ 這道題我自己一開(kāi)始的想法是從大到小遍歷孩子數(shù)組,對(duì)于每個(gè)元素從大到小遍歷餅干數(shù)組,滿足則total+1,并且該元素置0防止被再次使用。這樣雖然是可以的,但時(shí)間復(fù)

    2024年02月22日
    瀏覽(93)
  • 代碼隨想錄算法訓(xùn)練51 | 動(dòng)態(tài)規(guī)劃part12

    本題加了一個(gè)冷凍期,狀態(tài)就多了,有點(diǎn)難度,大家要把各個(gè)狀態(tài)分清,思路才能清晰? 視頻講解: 動(dòng)態(tài)規(guī)劃來(lái)決定最佳時(shí)機(jī),這次有冷凍期!| LeetCode:309.買(mǎi)賣(mài)股票的最佳時(shí)機(jī)含冷凍期_嗶哩嗶哩_bilibili 代碼隨想錄 相對(duì)122.買(mǎi)賣(mài)股票的最佳時(shí)機(jī)II?,本題只需要在計(jì)算賣(mài)出操

    2024年01月18日
    瀏覽(51)
  • 【Day45】代碼隨想錄之動(dòng)態(tài)規(guī)劃part7—爬樓梯(進(jìn)階)、零錢(qián)兌換、完全平方數(shù)

    【Day45】代碼隨想錄之動(dòng)態(tài)規(guī)劃part7—爬樓梯(進(jìn)階)、零錢(qián)兌換、完全平方數(shù)

    今天又是補(bǔ)打卡的一天,開(kāi)沖?。?! 今日任務(wù): 70.爬樓梯(進(jìn)階) 322.零錢(qián)兌換 279.完全平方數(shù) 這道題之前做過(guò)一次,但是可以采用完全背包的問(wèn)題來(lái)分析一遍。 卡瑪網(wǎng)題目:【57.爬樓梯】 這個(gè)題目其實(shí)是更難了一點(diǎn),因?yàn)榍懊娴念}目都是每次要不爬1階樓梯,要不爬2階樓

    2024年03月25日
    瀏覽(33)
  • 【Day53】代碼隨想錄之動(dòng)態(tài)規(guī)劃part10——買(mǎi)賣(mài)股票的最佳時(shí)機(jī)、買(mǎi)賣(mài)股票的最佳時(shí)機(jī)II

    【Day53】代碼隨想錄之動(dòng)態(tài)規(guī)劃part10——買(mǎi)賣(mài)股票的最佳時(shí)機(jī)、買(mǎi)賣(mài)股票的最佳時(shí)機(jī)II

    昨天已經(jīng)把打家劫舍的問(wèn)題解決了,最后一個(gè)題目涉及到樹(shù)形dp比較難(等到二刷的時(shí)候再重點(diǎn)看下),今天的任務(wù)是解決股票問(wèn)題。 今日任務(wù): 121.買(mǎi)賣(mài)股票的最佳時(shí)機(jī) 122.買(mǎi)賣(mài)股票的最佳時(shí)機(jī)II Leetcode題目:【121.買(mǎi)賣(mài)股票的最佳時(shí)機(jī)】 因?yàn)榇祟}中買(mǎi)賣(mài)股票只能買(mǎi)賣(mài)一次。

    2024年03月15日
    瀏覽(34)
  • 代碼隨想錄day24 開(kāi)啟回溯算法

    感覺(jué)回溯算法其實(shí)和遞歸很像,也是用遞歸的做法,也有三部曲,但又不太一樣的地方是遞歸中類(lèi)似二叉樹(shù),只有縱向遍歷(一層層往下遍歷,沒(méi)有橫向遍歷),而回溯算法中多的for循環(huán)就是橫向遍歷,說(shuō)實(shí)話這一點(diǎn)我沒(méi)有理解的太深,只是知道它類(lèi)似于兩個(gè)for循環(huán)中的第一

    2024年01月16日
    瀏覽(108)
  • 代碼隨想錄算法訓(xùn)練day4 | 鏈表

    目錄 24. 兩兩交換鏈表節(jié)點(diǎn) 19. 刪除鏈表倒數(shù)第n個(gè)節(jié)點(diǎn) 方法一:普通寫(xiě)法 方法二:雙指針?lè)?面試題:找鏈表相交節(jié)點(diǎn) 142. 判斷環(huán)形鏈表 虛擬頭節(jié)點(diǎn)的本質(zhì)意義在于減少了特殊情況的處理。不用判斷該節(jié)點(diǎn)是否在鏈表的第一位。 定義快慢兩個(gè)指針。 fast先走n步,再讓fast和s

    2024年02月04日
    瀏覽(90)
  • 代碼隨想錄算法訓(xùn)練DAY25|回溯2

    代碼隨想錄算法訓(xùn)練DAY25|回溯2

    力扣題目鏈接 找出所有相加之和為 n 的 k 個(gè)數(shù)的組合。組合中只允許含有 1 - 9 的正整數(shù),并且每種組合中不存在重復(fù)的數(shù)字。 說(shuō)明: 所有數(shù)字都是正整數(shù)。 解集不能包含重復(fù)的組合。 示例 1: 輸入: k = 3, n = 7 輸出: [[1,2,4]] 示例 2: 輸入: k = 3, n = 9 輸出: [[1,2,6], [1,3,5], [2,3,4]

    2024年01月22日
    瀏覽(91)
  • 代碼隨想錄算法訓(xùn)練DAY27|回溯3

    代碼隨想錄算法訓(xùn)練DAY27|回溯3

    力扣題目鏈接 給定一個(gè)無(wú)重復(fù)元素的數(shù)組 candidates 和一個(gè)目標(biāo)數(shù) target ,找出 candidates 中所有可以使數(shù)字和為 target 的組合。 candidates 中的數(shù)字可以無(wú)限制重復(fù)被選取。 說(shuō)明: 所有數(shù)字(包括 target)都是正整數(shù)。 解集不能包含重復(fù)的組合。 示例 1: 輸入:candidates = [2,3,6,

    2024年01月23日
    瀏覽(92)
  • 代碼隨想錄算法練習(xí)Day1:二分查找

    代碼隨想錄算法練習(xí)Day1:二分查找

    題目鏈接:704. 二分查找 卡哥視頻講解:手把手帶你撕出正確的二分法 | 二分查找法 | 二分搜索法 | LeetCode:704. 二分查找 二分法概述: 二分法(Binary Search)是一種在有序數(shù)組或列表中查找目標(biāo)元素的算法。 二分法使用前提 : 有序數(shù)組或列表 :二分法要求在查找的數(shù)據(jù)結(jié)

    2024年04月23日
    瀏覽(96)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包