题解 | #牛群的能量#

牛群的能量

https://www.nowcoder.com/practice/00f87ddcd18842d0824d487fd70a730e

题目考察的知识点:动态规划

题目解答方法的文字分析:寻找和最大的子数列,在第i个位置,和最大的可能有i、i+(i-1)、i+(i-1)+(i-2)等可能(i-n)>=0;在第i-1个位置,和最大的可能有(i-1)、(i-1)+(i-2)、(i-1)+(i-2)+(i-3)等可能(i-n)>=0;那么在第i个位置,和最大的可能是energy[i]或者是energy[i]+f[i-1],f代表的是i之前的最大子序列之和

本题解析所用的编程语言:c++

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param energy int整型vector 
     * @return int整型
     */
    int maxEnergy(vector<int>& energy)
    {
        // write code here
        int ret = 0;
        int n = energy.size();
        if (n == 1)
            return energy[0];
        int a = energy[0];
        for (int i = 1; i < n; ++i)
        {
            a = max(energy[i], a + energy[i]);
            ret = max(ret, a);
        }

        return ret;
    }
};

全部评论
int ret = 0 应该改为 ret = energy[0],当只要第一个为最大的时候比较不到。(虽然测试用例全过了,但示例2[-1,-2,-3,-4,-5]是过不了的)
2 回复 分享
发布于 2023-09-25 10:23 江西

相关推荐

05-13 00:41
已编辑
北京邮电大学 Java
理性的杰克刷牛客:ai肯定要有的,最好学一下agent方向加一个智能客服什么的进去,并且多加点什么skill,mcp啥的,另外你现在的项目深度有些浅,这些功能都太简单了,而且也不是真正能扛高并发的实现,没有什么太大的亮点,可以去网上找点更有深度的项目。可以先投一些中小厂,有实习经历以后再去大厂,你现在这个大厂可能机会不大
点赞 评论 收藏
分享
牛马43373018...:这人真懂什么叫熵吗
点赞 评论 收藏
分享
评论
4
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务