Compute the Minimum Value to Get Positive Step by Step Sum using
- 时间:2020-09-09 14:04:20
- 分类:网络文摘
- 阅读:118 次
Given an array of integers nums, you start with an initial positive value startValue. In each iteration, you calculate the step by step sum of startValue plus elements in nums (from left to right). Return the minimum positive value of startValue such that the step by step sum is never less than 1.
Example 1:
Input: nums = [-3,2,-3,4,2]Output: 5
Explanation: If you choose startValue = 4, in the third iteration your step by step sum is less than 1.step by step sum startValue = 4 | startValue = 5 | nums (4 -3 ) = 1 | (5 -3 ) = 2 | -3 (1 +2 ) = 3 | (2 +2 ) = 4 | 2 (3 -3 ) = 0 | (4 -3 ) = 1 | -3 (0 +4 ) = 4 | (1 +4 ) = 5 | 4 (4 +2 ) = 6 | (5 +2 ) = 7 | 2Example 2:
Input: nums = [1,2]
Output: 1
Explanation: Minimum start value should be positive.Example 3:
Input: nums = [1,-2,-3]
Output: 5Constraints:
1 <= nums.length <= 100
-100 <= nums[i] <= 100Hints:
Find the minimum prefix sum.
Prefix Sum Algorithm
We can compute the minimal prefix sum using O(N) loop. The final answer is -minSum + 1.
1 2 3 4 5 6 7 8 9 10 11 | class Solution { public: int minStartValue(vector<int>& nums) { int sum = 0, minsum = 0; for (const auto &n: nums) { sum += n; minsum = min(minsum, sum); } return -minsum + 1; } }; |
class Solution {
public:
int minStartValue(vector<int>& nums) {
int sum = 0, minsum = 0;
for (const auto &n: nums) {
sum += n;
minsum = min(minsum, sum);
}
return -minsum + 1;
}
};We can also use the std::accumulate to do this:
1 2 3 4 5 6 7 8 9 10 11 | class Solution { public: int minStartValue(vector<int>& nums) { int minsum = 0; std::accumulate(begin(nums), end(nums), 0, [&](auto &a, auto &b) { minsum = min(minsum, a + b); return a + b; }); return -minsum + 1; } }; |
class Solution {
public:
int minStartValue(vector<int>& nums) {
int minsum = 0;
std::accumulate(begin(nums), end(nums), 0, [&](auto &a, auto &b) {
minsum = min(minsum, a + b);
return a + b;
});
return -minsum + 1;
}
};–EOF (The Ultimate Computing & Technology Blog) —
推荐阅读:阅读点亮我的心灵作文300字 春节逛花市作文 在苦难中行走 百度正式上线快速收录功能 如何让百度快速收录网页?快用百度站长平台“快速收录”功能! php和asp网站源码有什么不同?哪种代码语言更好? 装修公司网销业绩不好?原因和解决方法都在这里 亚马逊正式推出企业搜索引擎Kendra 为什么Google SEO见效慢 一个三流SEOer从业记录
- 评论列表
-
- 添加评论