LeetCode打卡--一维数组动态求和

127 阅读1分钟

属于简单类型
首先思路就是直接累加两个循环进行遍历

 public static int[] runningSum(int[] nums) {

        int[] ans = new int[nums.length];
        for (int i = 0; i < nums.length; i++) {
            int num =0;
            for (int j = 0; j <= i; j++) {
                num += nums[j];

            }
            ans[i] = num;
        }
        return ans;
    }

可是显然没有这个必要时间复杂度O(n2),其实就是ans[i-1]+nus[i]的过程

 public static int[] runningSum2(int[] nums) {

        int[] ans = new int[nums.length];
        int num =0;
        for (int i = 0; i < nums.length; i++) {
            num +=nums[i];
            ans[i] = num;
        }
        return ans;
    }

于是