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();
    }
    
  • 相关阅读:
    光场显微成像----整理
    清华大学自动化系友论坛——光电智能计算:笔记
    大创记录——Day3.12
    2.17UI bug修复
    beta阶段UI界面改进
    关于UI设计的心得体会-alpha和beta交界期间
    1.30进度
    2018.1.28进度更新
    心·迹 项目简介
    项目组成员介绍
  • 原文地址:https://www.cnblogs.com/fyusac/p/15196415.html
Copyright © 2011-2022 走看看