题解 | #牛群的夜间保卫#

牛群的夜间保卫

https://www.nowcoder.com/practice/829709d4bfb549688659581fee72d52f

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param values int整型一维数组 
     * @return int整型
     */
    public int maxPatrolValue (int[] values) {
        // write code here
        int l = values.length;
        if(l == 0){
            return 0;
        }
        if(l == 1){
            return values[1];
        }
        int[]dp = new int[l];
        dp[0] = values[0];
        dp[1] = Math.max(dp[0],values[1]);
        int maxPatrolValue = 0;
        for(int i = 2; i<l;i++){
            dp[i] = Math.max(dp[i-2],dp[i-2]+values[i]);
            maxPatrolValue = Math.max(maxPatrolValue, dp[i]);
        }
        return maxPatrolValue;
        
    }

    
}

动态规划问题,关键还是动态规划方程及其初始值。难一点的动态规划跟递归一起考,比如找最长子数组的问题。所有的算法问题都是多个小技巧的组合,有的时候组合的太多开发人员脑内存有限,就会搞不出来

#软件开发2024笔面经##算法##荣耀##华为#
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务