zoukankan      html  css  js  c++  java
  • 【leetcode】1413. Minimum Value to Get Positive Step by Step Sum

    题目如下:

    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    |   2
    

    Example 2:

    Input: nums = [1,2]
    Output: 1
    Explanation: Minimum start value should be positive. 
    

    Example 3:

    Input: nums = [1,-2,-3]
    Output: 5

    Constraints:

    • 1 <= nums.length <= 100
    • -100 <= nums[i] <= 100

    解题思路:从左往右依次累加nums的和,如果遇到和为负数的情况,只要保证 startValue = min(负数和) + 1 即可;如果全为正数,startValue = 1。

    代码如下:

    class Solution(object):
        def minStartValue(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            min_val = float('inf')
            amount = 0
            for i in nums:
                amount += i
                min_val = min(min_val,amount)
            if min_val >= 1:return 1
            else:return abs(min_val) + 1
  • 相关阅读:
    实用硬件篇(一)
    iOS通讯录(纯纯的干货)
    iOS社会化分享(干货)
    静态库的打包及使用(干货)
    iOS地图集成示例:百度地图POI检索
    iOS开发之KVC全解
    网络干货
    输入一个字符串,按字典序打印出该字符串中字符的所有排列(剑指offer)
    序列化二叉树
    二叉树中和为某一值的路径
  • 原文地址:https://www.cnblogs.com/seyjs/p/12985246.html
Copyright © 2011-2022 走看看