题解 | #牛群的能量#
牛群的能量
https://www.nowcoder.com/practice/00f87ddcd18842d0824d487fd70a730e
考察的知识点:动态规划、双指针;
解答方法分析:
- 始化两个指针
start和end都指向能量列表的第一个元素。 - 初始化一个变量
maxSum来保存能量值之和的最大值,初值为第一个元素的量值。 - 初始化一个变量
currentSum来保存当前连续子的能量值之和初值为第一个元素的能量值。 - 循环遍历能量列表,从第二个元素开始:将当前元素的能量值加到currentSum上。如果currentSum大于maxSum,则更新maxSum的值。如果currentSum小于0,表示当前子群的能量值为负数,说明当前子群对总体能量没有贡献,将start指针移到下一个位置,并将currentSum重置为0。
- 循环结束后,
maxSum即为能量值之和最大的连续群。
所用编程语言:C++;
完整编程代码:↓
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param energy int整型vector
* @return int整型
*/
int maxEnergy(vector<int>& energy) {
int maxSum = INT_MIN;
int currentSum = 0;
for (int i = 0; i < energy.size(); i++) {
currentSum += energy[i];
if (currentSum > maxSum) {
maxSum = currentSum;
}
if (currentSum < 0) {
currentSum =
0;
}
}
return maxSum;
}
};
三奇智元机器人科技有限公司公司福利 88人发布