分类: 代码随想录算法训练营

52 篇文章

day37 | 贪心part6
738. 单调递增的数字 把递减的部分向前借一位,全填9 class Solution { public: // 把后面的数字换成9 int monotoneIncreasingDigits(int n) { string s = to_string(n); int flag = s.size(); for (int i = s.size() - …
day36 | 贪心part5
435. 无重叠区间 总和 - 不相交的长度 class Solution { public: // 不相交的最大个数 int eraseOverlapIntervals(vector<vector<int>>& intervals) { int n = intervals.size(); int res = 1; …
day35 | 贪心part4
860. 柠檬水找零 有大的先用大的找零 class Solution { public: // 有大的票子就先花大的票子 bool lemonadeChange(vector<int>& bills) { int cnt1 = 0, cnt2 = 0; for (int i = 0; i < bills.size(); …
day34 | 贪心part3
1005. K 次取反后最大化的数组和 分成大于0小于0 class Solution { public: // 只用改负数 int largestSumAfterKNegations(vector<int>& nums, int k) { vector<int> a1; // 大于0 vector<int&g…
day32 | 贪心part2
122. 买卖股票的最佳时机 II 能卖就卖 class Solution { public: int maxProfit(vector<int>& prices) { int res = 0; int pre = prices[0]; for (int i = 1; i < prices.size(); i ++) { …
day31 | 贪心part1
455. 分发饼干 思想是让每一块饼干给刚刚符合的人吃 class Solution { public: // g孩子 s饼干 int findContentChildren(vector<int>& g, vector<int>& s) { sort(g.begin(), g.end()); sort(s.…
day30 | 回溯part6
三个 hard, 很夸张 332. 重新安排行程 最后结束的是死胡同点,从死胡同往后回溯。再反转下答案。 class Solution { public: // 多了一个入度的是死胡同 vector<string> res; unordered_map<string, priority_queue<string, vecto…
day29 | 回溯part5
491. 递增子序列 因为数组不能排序,数字是乱序的,所以不能用和前面的比较来去重。使用 unordered_set 去重 class Solution { public: // 不能排序 点和当前数组的最后一个比较 vector<vector<int>> res; vector<int> nums; vecto…
day28 | 回溯part4
93. 复原 IP 地址 分成四份 class Solution { public: // 将字符串分割成4份,每份都是0~255,数字不能含有前导零 vector<string> res; string s; vector<string> restoreIpAddresses(string s) { this->s …