教做網(wǎng)站天津百度快照優(yōu)化公司
今天寫了一道題目,順便看了一個很好的總結(jié),這篇博客可以跳過。
Leetcode:738 單調(diào)遞增的數(shù)字
因為最大的數(shù)字是9,當出現(xiàn)后面位數(shù)的數(shù)字比前面位數(shù)的數(shù)字小的時候,就把后面的數(shù)字都變成9,前面那個數(shù)字--。這要求我們從后向前遍歷,記錄變化的位置,防止修改后的數(shù)字出現(xiàn)反復修改的情況。
時間復雜度O(N)
空間復雜度O(N)
class Solution {
public:int monotoneIncreasingDigits(int n) {string strNum = to_string(n);//把數(shù)字轉(zhuǎn)化為字符串更加好操作int flag = strNum.size();for(int i = strNum.size() - 1; i > 0; i--){if(strNum[i - 1] > strNum[i]){flag = i;//記錄需要--的位數(shù)strNum[i - 1]--;}}for(int i = flag; i < strNum.size(); i++){strNum[i] = '9';//將后面的數(shù)字都改成9}return stoi(strNum);}
};
Leetcode:968.監(jiān)控二叉樹
這道題比較困難,之后繼續(xù)學習
代碼隨想錄
總結(jié)
代碼隨想錄
貪心題目沒有統(tǒng)一的模板和規(guī)律,理解題目基本意思之后,題目代碼一般都比較簡單。但是如果沒有先判斷出是貪心問題,沒有想到精妙的貪心策略就比較困難了。