力扣题目汇总 使用贪心算法解决问题

贪心算法是一种通过局部最优解来获得全局最优解的算法。它的核心思想是:在每一步中选择当前看起来最优的解,并希望通过一系列局部最优选择最终得到全局最优解。

121.买卖股票的最佳时机

分析:

在每一天求出当前最优的利润,也就是我当天卖出,我要想获得最大利润就是找到最低买入价。然后从每个局部最优解里面选出全局最优解。

解决:
java 复制代码
class Solution {
    public int maxProfit(int[] prices) {
        int result=0;
        int minPrice=prices[0];
        for (int i=1;i<prices.length;i++){
            result=Math.max(prices[i]-minPrice,result);
            minPrice=Math.min(minPrice,prices[i]);
        }
        return result;
    }
}

55.跳跃游戏

分析

每次选择当前能跳跃的最远距离,从而尽可能地扩展到达范围。从一个位置跳到下一个位置,看看当前位置是否可达,如果可达,就看看从当前位置能跳跃的最远距离,不断更新maxReach扩展最大到达距离,如果最大到达距离maxReach>=size-1了,就返回true

解决
java 复制代码
class Solution {
    public boolean canJump(int[] nums) {
        int maxReach=0;
        int n=nums.length;
        for (int i=0;i<n;i++){
            if (i<=maxReach){
                maxReach=Math.max(i+nums[i],maxReach);
                if (maxReach>=n-1){
                    return true;
                }
            }else{
                return false;
            }
        }
        return false;
    }
}
相关推荐
int型码农5 分钟前
数据结构第八章(一) 插入排序
c语言·数据结构·算法·排序算法·希尔排序
UFIT18 分钟前
NoSQL之redis哨兵
java·前端·算法
喜欢吃燃面19 分钟前
C++刷题:日期模拟(1)
c++·学习·算法
SHERlocked9322 分钟前
CPP 从 0 到 1 完成一个支持 future/promise 的 Windows 异步串口通信库
c++·算法·promise
怀旧,28 分钟前
【数据结构】6. 时间与空间复杂度
java·数据结构·算法
积极向上的向日葵41 分钟前
有效的括号题解
数据结构·算法·
GIS小天1 小时前
AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月7日第101弹
人工智能·算法·机器学习·彩票
_Itachi__1 小时前
LeetCode 热题 100 74. 搜索二维矩阵
算法·leetcode·矩阵
不忘不弃1 小时前
计算矩阵A和B的乘积
线性代数·算法·矩阵
不爱写代码的玉子1 小时前
HALCON透视矩阵
人工智能·深度学习·线性代数·算法·计算机视觉·矩阵·c#