zoukankan      html  css  js  c++  java
  • 1413. 逐步求和得到正数的最小值『简单』

    题目来源于力扣(LeetCode

    一、题目

    1413. 逐步求和得到正数的最小值

    题目相关标签:数组

    提示:

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

    二、解题思路

    2.1 暴力法

    1. 从数字 1 到 Integer.MAX_VALUE 开始遍历

    2. 如果数字 1 能够对 nums 数组进行累加求和的操作,且累加和始终大于 0,则返回结果数字 1

    3. 否则数字 1 每次加 1 继续循环操作

    2.2 遍历求和取最小值方式

    1. 遍历一遍 nums 数组,记录下累加和的最小值

    2. 最小值为正数时,说明 nums 数组中的累加和始终大于等于 1,则返回最小正数 1

    3. 最小值为负数时,则取最小值的绝对值,且需要加 1,才能保证该数对 nums 数组进行累加和时,结果始终大于等于 1

    三、代码实现

    3.1 暴力法

    public static int minStartValue(int[] nums) {
        // 从正数 1 开始,对数组进行累加的操作
        for (int i = 1; i < Integer.MAX_VALUE; i++) {
            int sum = i;
            for (int j = 0; j < nums.length; j++) {
                sum += nums[j];
                // 累加和小于 1 时,结束内层循环
                if (sum < 1) {
                    break;
                }
                // 内层循环,即遍历到 nums 的最后一位时,返回正确结果
                if (j == nums.length - 1) {
                    return i;
                }
            }
        }
        return 0;
    }
    

    3.2 遍历求和取最小值方式

    public static int minStartValue(int[] nums) {
        // 定义最小值
        int minSum = Integer.MAX_VALUE;
        // 初始累加和为 0
        int sum = 0;
    
        for (int num : nums) {
            // 累加求和的结果
            sum += num;
            // 记录下最小的和
            minSum = Math.min(minSum, sum);
        }
        // minSum 为正数时,返回最小正数 1
        if (minSum >= 0) {
            return 1;
        }
        // minSum 为负数时,返回 负数取反 + 1
        else {
            return 1 - minSum;
        }
    }
    

    四、执行用时

    4.1 暴力法

    4.2 遍历求和取最小值方式

    五、部分测试用例

    public static void main(String[] args) {
        int[] arr = {-3, 2, -3, 4, 2};  // output:5
    //    int[] arr = {1, 2};  // output:1
    //    int[] arr = {1, -2, -3};  // output:5
        int result = minStartValue(arr);
        System.out.println(result);
    }
    
  • 相关阅读:
    Vue中computed和watch的区别
    JS基础语法
    JDBC
    表设计
    查询语句
    反射
    网络端
    多线程
    HashMap
    IO
  • 原文地址:https://www.cnblogs.com/zhiyin1209/p/12884703.html
Copyright © 2011-2022 走看看