zoukankan      html  css  js  c++  java
  • LeetCode 1480 一维数组的动态和

    给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i])

    请返回 nums 的动态和。

    示例 1:

    输入:nums = [1,2,3,4]
    输出:[1,3,6,10]
    解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。

    示例 2:

    输入:nums = [1,1,1,1,1]
    输出:[1,2,3,4,5]
    解释:动态和计算过程为 [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1] 。

    示例 3:

    输入:nums = [3,1,2,10,1]
    输出:[3,4,6,16,17]
    

    前缀和:一个数组的某项下标之前(包括此项元素)的所有数组元素的和

    /**
     * 前缀和
     *
     * @param nums
     * @return
     */
    public static int[] runningSum(int[] nums) {
        if (nums == null || nums.length == 0) return new int[]{};
    
        int len = nums.length;
        int[] res = new int[len];
        res[0] = nums[0];
        for (int i = 1; i < len; i++) {
            res[i] = res[i - 1] + nums[i];
        }
        return res;
    }
    

    测试用例

    public static void main(String[] args) {
        int[] nums = new int[]{1, 2, 3, 4};
        int[] ans = RunningSum.runningSum(nums);
        System.out.print("RunningSum demo01 result : ");
        for (int tmp : ans) {
            System.out.print(tmp + " ");
        }
        System.out.println();
    
        nums = new int[]{1, 1, 1, 1, 1};
        ans = RunningSum.runningSum(nums);
        System.out.print("RunningSum demo02 result : ");
        for (int tmp : ans) {
            System.out.print(tmp + " ");
        }
        System.out.println();
    
        nums = new int[]{3, 1, 2, 10, 1};
        ans = RunningSum.runningSum(nums);
        System.out.print("RunningSum demo03 result : ");
        for (int tmp : ans) {
            System.out.print(tmp + " ");
        }
        System.out.println();
    }
    
  • 相关阅读:
    局部测试用例,日常笔记
    软件测试工程师素养(日常笔记)
    Java控件(日常笔记)
    开发大体流程
    sort学习 LeetCode #406 Queue Reconstruction by Height
    MySQL 变量
    [转帖]查看结构体成员的大小和偏移地址的方法
    [转帖]SQL99
    static静态类 静态函数 静态字段
    默认构造函数
  • 原文地址:https://www.cnblogs.com/fyusac/p/15196415.html
Copyright © 2011-2022 走看看