-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy paths2221_find_triangular_sum_of_an_array.go
More file actions
41 lines (32 loc) · 1 KB
/
s2221_find_triangular_sum_of_an_array.go
File metadata and controls
41 lines (32 loc) · 1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
https://leetcode.com/problems/find-triangular-sum-of-an-array/
You are given a 0-indexed integer array nums, where nums[i] is a digit between
0 and 9 (inclusive).
The triangular sum of nums is the value of the only element present in nums
after the following process terminates:
Let nums comprise of n elements. If n == 1, end the process. Otherwise, create
a new 0-indexed integer array newNums of length n - 1.
For each index i, where 0 <= i < n - 1, assign the value of newNums[i] as
(nums[i] + nums[i+1]) % 10, where % denotes modulo operator.
Replace the array nums with newNums.
Repeat the entire process starting from step 1.
Return the triangular sum of nums.
*/
package solutions
func triangularSum(nums []int) int {
f := func(xs ...int) []int {
if len(xs) == 1 {
return xs
}
res := make([]int, 0, len(xs)-1)
for i := 1; i < len(xs); i++ {
res = append(res, (xs[i]+xs[i-1])%10)
}
return res
}
acc := nums
for len(acc) > 1 {
acc = f(acc...)
}
return acc[0]
}