File tree 2 files changed +19
-11
lines changed
Algorithms/0228.summary-ranges
2 files changed +19
-11
lines changed Original file line number Diff line number Diff line change @@ -14,23 +14,22 @@ func summaryRanges(a []int) []string {
14
14
15
15
begin := a [0 ]
16
16
str := ""
17
- for i := 1 ; i < l ; i ++ {
18
- if a [i - 1 ]+ 1 != a [i ] {
19
- if a [i - 1 ] == begin {
17
+
18
+ for i := 0 ; i < l ; i ++ {
19
+ if i == l - 1 || a [i ]+ 1 != a [i + 1 ] {
20
+ if a [i ] == begin {
20
21
str = fmt .Sprintf ("%d" , begin )
21
22
} else {
22
- str = fmt .Sprintf ("%d->%d" , begin , a [i - 1 ])
23
+ str = fmt .Sprintf ("%d->%d" , begin , a [i ])
24
+ }
25
+
26
+ if i + 1 < l {
27
+ begin = a [i + 1 ]
23
28
}
24
- begin = a [ i ]
29
+
25
30
res = append (res , str )
26
31
}
27
32
}
28
- if a [l - 1 ] == begin {
29
- str = fmt .Sprintf ("%d" , begin )
30
- } else {
31
- str = fmt .Sprintf ("%d->%d" , begin , a [l - 1 ])
32
- }
33
- res = append (res , str )
34
33
35
34
return res
36
35
}
Original file line number Diff line number Diff line change @@ -27,6 +27,15 @@ func Test_Problem0228(t *testing.T) {
27
27
28
28
qs := []question {
29
29
30
+ question {
31
+ para {
32
+ []int {},
33
+ },
34
+ ans {
35
+ []string {},
36
+ },
37
+ },
38
+
30
39
question {
31
40
para {
32
41
[]int {0 , 1 , 2 , 4 , 5 , 7 },
You can’t perform that action at this time.
0 commit comments