贪心算法总结
2023-12-15 14:18:28
什么是贪心算法
贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 这么说有点抽象,来举一个例子: 例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎么拿? 指定每次拿最大的,最终结果就是拿走最大数额的钱。
每次拿最大的就是局部最优,最后拿走最大数额的钱就是推出全局最优。
引用自代码随想录
题目汇总
1800. 最大升序子数组和
每一阶段的局部最优就是到当前位置的最大升序子数组之和。
全局最优就是到数组尾时的最大升序子数组之和。
class Solution {
public int maxAscendingSum(int[] nums) {
int size = nums.length;
int total = 0;
int res = nums[0];
for(int i = 1; i < size; i++){
total = nums[i-1];
// 贪心的获取能得到的最大值
while(i < size && nums[i] > nums[i-1]){
total += nums[i];
res = Math.max(total, res);
i++;
}
}
return res;
}
}
文章来源:https://blog.csdn.net/weixin_46367158/article/details/135013342
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!