本文主要是介绍算法训练营第31天|LeetCode 455.分发饼干 376.摆动序列 53.最大子序列和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
LeetCode 455.分发饼干
题目链接:
LeetCode 455.分发饼干
解题思路:
从孩子小到大,找到最小能满足孩子的饼干,之后看最多能满足几个孩子。
代码:
class Solution {
public:int findContentChildren(vector<int>& g, vector<int>& s) {int count = 0;map<int,int>map_s;for(int i = 0;i<s.size();i++){map_s[s[i]]++;}sort(g.begin(),g.end());for(int i=0;i<g.size();i++){for(auto it = map_s.begin();it!=map_s.end();it++){if(it->first>=g[i]&&it->second>0){it->second--;count++;break;}}}return count;}
};
LeetCode 376.摆动序列
题目链接:
LeetCode 376.摆动序列
解题思路:
先将一个节点和两个节点的特殊情况列举出来,之后分三种情况1.有摆动2.有摆动但中间是平的3.持续增,但中间为平的三种。
代码:
class Solution {
public:int wiggleMaxLength(vector<int>& nums) {int size = nums.size();if(size==1) return 1;else if(size==2){if(nums[0]!=nums[1]) return 2;else return 1;}int prediff = 0,curdiff = 0;int count = 1;for(int i=1;i<size;i++){curdiff = nums[i]-nums[i-1];if((curdiff>0&&prediff<=0)||(curdiff<0&&prediff>=0)){count++;prediff = curdiff;}}return count;}
};
LeetCode 53.最大子序列和
题目链接:
LeetCode 53.最大子序列和
解题思路:
用result记录当前最大结果值,如果前面的结果值小于零,则起不到递增的作用,则不要前面的,将前面的结果赋值为0.
代码:
class Solution {
public:int maxSubArray(vector<int>& nums) {int count = 0;int result = INT_MIN;for(int i=0;i<nums.size();i++){count+=nums[i];if(count>result) result = count;if(count<0) count = 0;}return result;}
};
这篇关于算法训练营第31天|LeetCode 455.分发饼干 376.摆动序列 53.最大子序列和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!