mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 00:25:22 +08:00
57 lines
889 B
Go
57 lines
889 B
Go
package leetcode
|
|
|
|
func decrypt(code []int, k int) []int {
|
|
if k == 0 {
|
|
for i := 0; i < len(code); i++ {
|
|
code[i] = 0
|
|
}
|
|
return code
|
|
}
|
|
count, sum, res := k, 0, make([]int, len(code))
|
|
if k > 0 {
|
|
for i := 0; i < len(code); i++ {
|
|
for j := i + 1; j < len(code); j++ {
|
|
if count == 0 {
|
|
break
|
|
}
|
|
sum += code[j]
|
|
count--
|
|
}
|
|
if count > 0 {
|
|
for j := 0; j < len(code); j++ {
|
|
if count == 0 {
|
|
break
|
|
}
|
|
sum += code[j]
|
|
count--
|
|
}
|
|
}
|
|
res[i] = sum
|
|
sum, count = 0, k
|
|
}
|
|
}
|
|
if k < 0 {
|
|
for i := 0; i < len(code); i++ {
|
|
for j := i - 1; j >= 0; j-- {
|
|
if count == 0 {
|
|
break
|
|
}
|
|
sum += code[j]
|
|
count++
|
|
}
|
|
if count < 0 {
|
|
for j := len(code) - 1; j >= 0; j-- {
|
|
if count == 0 {
|
|
break
|
|
}
|
|
sum += code[j]
|
|
count++
|
|
}
|
|
}
|
|
res[i] = sum
|
|
sum, count = 0, k
|
|
}
|
|
}
|
|
return res
|
|
}
|