长春网站制作外包,域名注册平台哪个好,扬州市住房建设局网站,下载微信公众号第一题#xff1a;
原题链接#xff1a;455. 分发饼干 - 力扣#xff08;LeetCode#xff09;
思路#xff1a;
将大的饼干来满足胃口大的孩子。
先将小孩子的胃口和饼干的尺寸进行排序。然后从后往前遍历胃口#xff0c;饼干的尺寸也从后往前。如果饼干尺寸大于等于…第一题
原题链接455. 分发饼干 - 力扣LeetCode
思路
将大的饼干来满足胃口大的孩子。
先将小孩子的胃口和饼干的尺寸进行排序。然后从后往前遍历胃口饼干的尺寸也从后往前。如果饼干尺寸大于等于小孩胃口res然后比较下一块饼干。
代码如下
class Solution {
public:int findContentChildren(vectorint g, vectorint s) {sort(g.begin(), g.end());sort(s.begin(), s.end());int res 0;int index s.size() - 1;for(int i g.size() - 1; i 0; i--){if(index 0 s[index] g[i]){res;index--;}}return res;}
};
第二题
原题链接376. 摆动序列 - 力扣LeetCode
思路
首元素和尾元素都算摆动
考虑三种情况
第一种是上下坡有平坡
第二种是首尾元素直降将尾元素记录为1
第三种是单调坡有平坡。
整体的思路是prediff 0 curdiff 0 || prediff 0 curdiff 0 就证明是摆动。
第三种情况就是当有坡度的时候才更行prediff的值。
代码如下
class Solution {
public:int wiggleMaxLength(vectorint nums) {if(nums.size() 1) return 1;int res 1;int prediff 0;int curdiff 0;for(int i 0; i nums.size() - 1; i){curdiff nums[i 1] - nums[i];if(prediff 0 curdiff 0 ||prediff 0 curdiff 0){res;prediff curdiff;}}return res;}
};
第三题
原题链接53. 最大子数组和 - 力扣LeetCode
思路
当前连续子数组的和如果小于0就直接从下一个元素进行计算。切记不能遇到负数就跳过。用res记录每次的遍历的最大和。
代码如下
class Solution {
public:int maxSubArray(vectorint nums) {int res INT_MIN;int count 0;for(int i 0; i nums.size(); i){count nums[i];if(count res) res count;if(count 0) count 0;}return res;}
};