贪心算法(力扣)

贪心算法(greedy algorithm [8]  ,又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解 。

贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择。

贪心算法一般按如下步骤进行: 

①建立数学模型来描述问题 。

②把求解的问题分成若干个子问题 。

③对每个子问题求解,得到子问题的局部最优解。

④把子问题的解局部最优解合成原来解问题的一个解。

注:

1、不能保证解是最佳的。因为贪心算法总是从局部出发,并没从整体考虑 

2、贪心算法一般用来解决求最大或最小解

3、贪心算法只能确定某些问题的可行性范围  。

 

class Solution {
    public int maxProfit(int[] prices) {
        int sum=0;
        for (int i = 1; i < prices.length; i++) {
           int num = prices[i]-prices[i-1];
            if(num>0){
             sum+=num;
            }
        }
        return sum;
                               }
    }

猜你喜欢

转载自blog.csdn.net/qq_63852611/article/details/126322108