parent
c17fa668c8
commit
6007c0dd33
@ -0,0 +1,32 @@
|
||||
1480. 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.
|
||||
|
||||
|
||||
|
||||
Example 1:
|
||||
|
||||
Input: nums = [1,2,3,4]
|
||||
Output: [1,3,6,10]
|
||||
Explanation: Running sum is obtained as follows: [1, 1+2, 1+2+3, 1+2+3+4].
|
||||
|
||||
Example 2:
|
||||
|
||||
Input: nums = [1,1,1,1,1]
|
||||
Output: [1,2,3,4,5]
|
||||
Explanation: Running sum is obtained as follows: [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1].
|
||||
|
||||
Example 3:
|
||||
|
||||
Input: nums = [3,1,2,10,1]
|
||||
Output: [3,4,6,16,17]
|
||||
|
||||
|
||||
|
||||
Constraints:
|
||||
|
||||
1 <= nums.length <= 1000
|
||||
-10^6 <= nums[i] <= 10^6
|
@ -0,0 +1,16 @@
|
||||
package runningsum
|
||||
|
||||
func runningSum(nums []int) []int {
|
||||
result := make([]int, len(nums))
|
||||
total := 0
|
||||
for i, num := range nums {
|
||||
total += num
|
||||
result[i] = total
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
func RunningSum(nums []int) []int {
|
||||
return runningSum(nums)
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
package runningsum_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"git.jxs.me/leetgo/runningsum"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestEmpty(t *testing.T) {
|
||||
expected := make([]int, 0)
|
||||
actual := runningsum.RunningSum([]int{})
|
||||
require.Equal(t, expected, actual)
|
||||
}
|
||||
|
||||
func TestSingle(t *testing.T) {
|
||||
expected := []int{1}
|
||||
actual := runningsum.RunningSum([]int{1})
|
||||
require.Equal(t, expected, actual)
|
||||
}
|
||||
|
||||
func TestDouble(t *testing.T) {
|
||||
expected := []int{1, 2}
|
||||
actual := runningsum.RunningSum([]int{1, 1})
|
||||
require.Equal(t, expected, actual)
|
||||
}
|
||||
|
||||
func TestExample1(t *testing.T) {
|
||||
expected := []int{1, 3, 6, 10}
|
||||
actual := runningsum.RunningSum([]int{1, 2, 3, 4})
|
||||
require.Equal(t, expected, actual)
|
||||
}
|
||||
|
||||
func TestExample2(t *testing.T) {
|
||||
expected := []int{1, 2, 3, 4, 5}
|
||||
actual := runningsum.RunningSum([]int{1, 1, 1, 1, 1})
|
||||
require.Equal(t, expected, actual)
|
||||
}
|
||||
|
||||
func TestExample3(t *testing.T) {
|
||||
expected := []int{3, 4, 6, 16, 17}
|
||||
actual := runningsum.RunningSum([]int{3, 1, 2, 10, 1})
|
||||
require.Equal(t, expected, actual)
|
||||
}
|
Loading…
Reference in new issue