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

牛群的夜间保卫II

https://www.nowcoder.com/practice/bf2f1631e44143bf8195f80340f9907d

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param values int整型一维数组
     * @return int整型
     */
    public int maxPatrolValue(int[] values) {
        if (values == null || values.length == 0) {
            return 0;
        }

        // 选择第一头牛的情况
        int prevMax1 = 0;
        int currentMax1 = values[0];

        for (int i = 2; i < values.length - 1; i++) {
            int temp = currentMax1;
            currentMax1 = Math.max(currentMax1, prevMax1 + values[i]);
            prevMax1 = temp;
        }

        // 不选择第一头牛的情况
        int prevMax2 = 0;
        int currentMax2 = 0;

        for (int i = 1; i < values.length; i++) {
            int temp = currentMax2;
            currentMax2 = Math.max(currentMax2, prevMax2 + values[i]);
            prevMax2 = temp;
        }

        // 取较大值作为结果
        return Math.max(currentMax1, currentMax2);
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务