LeetCode Note Java 01480:Running Sum of 1d Array

將輸入的 intArray nums 的每個欄位加總其左方的所有數字。

題目

Running Sum of 1d Array Easy

Given an array nums. We define a running sum of an array as runningSum[i] = sum(nums[0]…nums[i]).

Return the running sum of nums.

我的解法

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public int[] runningSum(int[] nums) {
int[] output = new int[nums.length];
int sum = 0;
for (int i = 0; i < nums.length; i++) {
sum += nums[i];
output[i] = sum;
}
return output;
}
}

滿直觀就能寫出答案了。

檢討

別人寫得更省記憶體的樣子,直接修改傳入的 array。

1
2
3
4
5
6
7
8
9
10
class Solution {
public int[] runningSum(int[] nums) {
int i = 1;
while (i < nums.length) {
nums[i] += nums[i - 1];
i++;
}
return nums;
}
}

不過跑出來的記憶體消耗數據跟本來的一樣,就當作多看一種方法吧。

參考資料

[Java/C++/Python] Array, Time O(N) Space O(1)