Skip to content

Commit b2880f8

Browse files
committed
add solution task #66 Plus One
1 parent cca07b9 commit b2880f8

File tree

4 files changed

+65
-0
lines changed

4 files changed

+65
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,7 @@
267267
- [X] [19. Remove Nth Node From End of List](sprint_leetcode/19)
268268
- [X] [33. Search in Rotated Sorted Array](sprint_leetcode/33)
269269
- [X] [56. Merge Intervals](sprint_leetcode/56)
270+
- [X] [66. Plus One](sprint_leetcode/66)
270271
- [X] [155. Min Stack](sprint_leetcode/155)
271272
- [X] [328. Odd Even Linked List](sprint_leetcode/328)
272273
- [X] [347. Top K Frequent Elements](sprint_leetcode/347)

sprint_leetcode/66/README.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# 15. 3Sum
2+
3+
Подробнее о задаче: [Тыц](https://leetcode.com/problems/3sum/description/)

sprint_leetcode/66/solution.go

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package main
2+
3+
func plusOne(digits []int) []int {
4+
n := len(digits)
5+
6+
for i := n - 1; i >= 0; i-- {
7+
if digits[i] < 9 {
8+
digits[i]++
9+
return digits
10+
}
11+
12+
digits[i] = 0
13+
}
14+
15+
digits = append([]int{1}, digits...)
16+
17+
return digits
18+
}

sprint_leetcode/66/solution_test.go

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"reflect"
6+
"testing"
7+
)
8+
9+
type TestItemInput struct {
10+
nums []int
11+
}
12+
type TestItem struct {
13+
input TestItemInput
14+
output []int
15+
}
16+
17+
func TestTask(t *testing.T) {
18+
for i, v := range generateTasks() {
19+
t.Run(fmt.Sprintf("Test %d", i+1), func(t *testing.T) {
20+
res := plusOne(v.input.nums)
21+
if !reflect.DeepEqual(res, v.output) {
22+
t.Errorf("Wrong test.\nOutput: \n%v \nExpected: \n%v", res, v.output)
23+
}
24+
})
25+
}
26+
}
27+
28+
func generateTasks() []TestItem {
29+
return []TestItem{
30+
{
31+
input: TestItemInput{nums: []int{1, 2, 3}},
32+
output: []int{1, 2, 4},
33+
},
34+
{
35+
input: TestItemInput{nums: []int{4, 3, 2, 1}},
36+
output: []int{4, 3, 2, 2},
37+
},
38+
{
39+
input: TestItemInput{nums: []int{9}},
40+
output: []int{1, 0},
41+
},
42+
}
43+
}

0 commit comments

Comments
 (0)