用于记录leetcode刷题-算法
用于记录leetcode刷题
lianghuijun2017
这个作者很懒,什么都没留下…
展开
-
763. 划分字母区间
算法思路: 记录字符串s中出现的不同字符出现的最后位置 遍历字符串s,记录当前字符最后的位置end,并不断更新,直到当前遍历到最后的位置,截断 class Solution { public: vector<int> partitionLabels(string s) { vector<int> last(26,0); int n = s.size(); vector<int> result(n,0);原创 2022-04-28 09:44:16 · 62 阅读 · 0 评论 -
524. 通过删除字母匹配到字典里最长单词
class Solution { public: string findLongestWord(string s, vector<string>& dictionary) { int n = dictionary.size(); string t; int s_index = s.size() - 1; int t_index = 0; int delete_s = 0; i原创 2022-04-28 09:22:42 · 57 阅读 · 0 评论 -
633. 平方数之和
class Solution { public: bool judgeSquareSum(int c) { long right = (long)sqrt(c); int left = 0; long target = 0; while(left <= right) { target = left * left + right * right; //cout原创 2022-04-26 16:37:45 · 63 阅读 · 0 评论 -
76. 最小覆盖子串
#解题思路 本题首先用map这一数据结构存储string t中各个字符的统计个数 设置滑动窗口left和right,在找到第一个满足条件的窗口之前,left不移动,向右移动right(直到right遍历完主串s) 找到第一个满足条件的子串(记录初始位置和长度),此时map中各个字符的值为0 向右移动left,移动过程中注意:移动丢失的字符在map中记录(增加字符对应的int值),并将当前子串长度递减:if(++map_t[s[left]] > 0) cnt--;判断是否大于零的原因是有可能存在主串中原创 2022-04-26 16:10:47 · 721 阅读 · 0 评论 -
88. 合并两个有序数组
class Solution { public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { int index = m + n - 1; m--; n--; while(m >= 0 && n >= 0) { nums1[inde原创 2022-04-25 21:10:00 · 61 阅读 · 0 评论 -
665. 非递减数列
class Solution { public: bool checkPossibility(vector<int>& nums) { int result = 0; for(int i = 0; i < nums.size() - 1; i++) { if(nums[i] > nums[i + 1]) { result++;原创 2022-04-25 20:42:30 · 45 阅读 · 0 评论 -
665. 非递减数列
class Solution { public: bool checkPossibility(vector<int>& nums) { int result = 0; for(int i = 0; i < nums.size() - 1; i++) { if(nums[i] > nums[i + 1]) { result++;原创 2022-04-25 15:08:09 · 53 阅读 · 0 评论 -
406. 根据身高重建队列
class Solution { public: static bool cmp(vector<int>& a, vector<int>& b) { if(a[0] != b[0]) return a[0] > b[0]; else return a[1] < b[1]; } vector<vector<int>> reconstructQueue(vector<原创 2022-04-25 15:07:37 · 43 阅读 · 0 评论 -
406. 根据身高重建队列
class Solution { public: static bool cmp(vector<int>& a, vector<int>& b) { if(a[0] != b[0]) return a[0] > b[0]; else return a[1] < b[1]; } vector<vector<int>> reconstructQueue(vector<原创 2022-04-24 16:34:24 · 49 阅读 · 0 评论 -
122. 买卖股票的最佳时机 II
class Solution { public: int maxProfit(vector<int>& prices) { int n = prices.size(); int start = prices[0]; int end = prices[1]; int max_profit = 0; for(int i = 1; i < n; i++) {原创 2022-04-24 14:46:36 · 52 阅读 · 0 评论 -
435. Non-overlapping Intervals
#435. Non-overlapping Intervals 在这里插入代码片class Solution { public: static bool cmp(vector<int>& a, vector<int>& b) { return a[1] < b[1];//error: a.end() < b.end() } int eraseOverlapIntervals(vector<vector原创 2022-04-22 17:46:58 · 64 阅读 · 0 评论 -
135.candy
Candy class Solution { public: int candy(vector<int>& ratings) { vector<int> data(ratings.size(), 1); for(int i = 0; i < ratings.size() - 1; i++) { if(ratings[i] < ratings[i + 1] && da.原创 2022-04-22 16:02:03 · 78 阅读 · 0 评论 -
455. Assign Cookies
力扣刷题 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 455. Assign Cookies 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录力扣刷题455. Assign Cookies总结 455. Assign Cookies 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 #代码如下: class Solution { publi原创 2022-04-22 15:04:53 · 180 阅读 · 0 评论