标签:count 07 int Solution class start public 刷题
贪心的本质是选择每一阶段的局部最优,从而达到全局最优
贪心没有套路,说白了就是常识性推导加上举反例。
贪心算法一般分为如下四步:
- 将问题分解为若干个子问题
- 找出适合的贪心策略
- 求解每一个子问题的最优解
- 将局部最优解堆叠成全局最优解
分发饼干
class Solution {
public int findContentChildren(int[] g, int[] s) {
Arrays.sort(g);
Arrays.sort(s);
int start=0;
for(int i=0;i<s.length;i++)
{
if(start<g.length&&s[i]>=g[start])
{
start++;
}
}
return start;
}
}
摆动序列
class Solution {
public int wiggleMaxLength(int[] nums) {
int pre=0;
int cur=0;
int count=1;
for(int i=0;i<nums.length-1;i++)
{
cur=nums[i+1]-nums[i];
if(cur>0&&pre<=0||cur<0&&pre>=0)
{
count++;
pre=cur;
}
}
return count;
}
}
最大子序和
class Solution {
public int maxSubArray(int[] nums) {
int result=Integer.MIN_VALUE;
int count=0;
for(int i=0;i<nums.length;i++)
{
count+=nums[i];
if(count>result) result=count;
if(count<=0) count=0;
}
return result;
}
}
买卖股票的最佳时机
class Solution {
public int maxProfit(int[] prices) {
int max=0;
for(int i=0;i<prices.length-1;i++)
{
if(prices[i+1]-prices[i]>0)
{
max+=prices[i+1]-prices[i];
}
}
return max;
}
}
标签:count,07,int,Solution,class,start,public,刷题 来源: https://www.cnblogs.com/Liuyunsan/p/15869520.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。