Skip to content

Commit f3dd783

Browse files
committed
[E:62/533, M:57/974, H:6/387] add No: 485 Max Consecutive Ones
1 parent 27702b8 commit f3dd783

File tree

9 files changed

+307
-1
lines changed

9 files changed

+307
-1
lines changed

questions/serial/简单/485/README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
## [最大连续1的个数](https://leetcode-cn.com/problems/max-consecutive-ones/)
2+
3+
给定一个二进制数组, 计算其中最大连续1的个数。
4+
5+
**示例 1:**
6+
7+
`
8+
**输入:** [1,1,0,1,1,1]
9+
**输出:** 3
10+
**解释:** 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.
11+
`
12+
13+
**注意:**
14+
15+
* 输入的数组只包含 `0``1`
16+
* 输入数组的长度是正整数,且不超过 10,000。
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"reflect"
7+
"time"
8+
9+
"github.com/gladmo/leetcode/leet"
10+
"github.com/gladmo/leetcode/questions/serial/简单/485/golang/solution"
11+
)
12+
13+
func main() {
14+
15+
tests := []struct {
16+
name string
17+
input []int
18+
want int
19+
}{
20+
{
21+
name: "test-[1,0,1,1,0,1]",
22+
input: []int{1, 0, 1, 1, 0, 1},
23+
want: 2,
24+
},
25+
{
26+
name: "test-[1,0,0,1,1,0,1]",
27+
input: []int{1, 0, 0, 1, 1, 0, 1},
28+
want: 2,
29+
},
30+
{
31+
name: "test-[1]",
32+
input: []int{1},
33+
want: 1,
34+
},
35+
{
36+
name: "test-[0]",
37+
input: []int{0},
38+
want: 0,
39+
},
40+
{
41+
name: "test-[]",
42+
input: []int{},
43+
want: 0,
44+
},
45+
{
46+
name: "test-[1,1,1,1]",
47+
input: []int{1, 1, 1, 1},
48+
want: 4,
49+
},
50+
}
51+
52+
testLog := leet.NewTestLog(len(tests))
53+
defer testLog.Render()
54+
55+
timeoutDuration := time.Second * 2
56+
57+
for idx, test := range tests {
58+
// 超时检测
59+
got := test.want
60+
timeout := leet.Timeout(timeoutDuration, func(ctx context.Context, cancel context.CancelFunc) {
61+
got = solution.Export(test.input)
62+
cancel()
63+
})
64+
65+
if timeout {
66+
testLog.Fail(idx+1, test.name, "timeout")
67+
continue
68+
}
69+
70+
if !reflect.DeepEqual(test.want, got) {
71+
testLog.Fail(idx+1, test.name, fmt.Sprintf("want: %v, got %v.", test.want, got))
72+
continue
73+
}
74+
75+
testLog.Pass(idx+1, test.name)
76+
}
77+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package solution
2+
3+
import (
4+
"fmt"
5+
"os"
6+
"runtime/debug"
7+
)
8+
9+
func Export(nums []int) int {
10+
defer func() {
11+
if r := recover(); r != nil {
12+
fmt.Println("Params: ", nums)
13+
fmt.Println("Panic:", r)
14+
fmt.Println()
15+
debug.PrintStack()
16+
os.Exit(0)
17+
}
18+
}()
19+
20+
return findMaxConsecutiveOnes(nums)
21+
}
22+
23+
/****************************************************/
24+
/******** 以下为 Leetcode 示例部分(提交PR请还原) *******/
25+
/******** 使用 (./leetcode clear) 初始化所有问题 *******/
26+
/****************************************************/
27+
28+
func findMaxConsecutiveOnes(nums []int) int {
29+
30+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package solution
2+
3+
import (
4+
"fmt"
5+
"os"
6+
"runtime/debug"
7+
)
8+
9+
func Export(nums []int) int {
10+
defer func() {
11+
if r := recover(); r != nil {
12+
fmt.Println("Params: ", nums)
13+
fmt.Println("Panic:", r)
14+
fmt.Println()
15+
debug.PrintStack()
16+
os.Exit(0)
17+
}
18+
}()
19+
20+
return findMaxConsecutiveOnes(nums)
21+
}
22+
23+
/****************************************************/
24+
/******** 以下为 Leetcode 示例部分(提交PR请还原) *******/
25+
/******** 使用 (./leetcode clear) 初始化所有问题 *******/
26+
/****************************************************/
27+
28+
func findMaxConsecutiveOnes(nums []int) int {
29+
30+
}

questions/store.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
## [最大连续1的个数](https://leetcode-cn.com/problems/max-consecutive-ones/)
2+
3+
给定一个二进制数组, 计算其中最大连续1的个数。
4+
5+
**示例 1:**
6+
7+
`
8+
**输入:** [1,1,0,1,1,1]
9+
**输出:** 3
10+
**解释:** 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.
11+
`
12+
13+
**注意:**
14+
15+
* 输入的数组只包含 `0``1`
16+
* 输入数组的长度是正整数,且不超过 10,000。
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"reflect"
7+
"time"
8+
9+
"github.com/gladmo/leetcode/leet"
10+
"github.com/gladmo/leetcode/questions/serial/简单/485/golang/solution"
11+
)
12+
13+
func main() {
14+
15+
tests := []struct {
16+
name string
17+
input []int
18+
want int
19+
}{
20+
{
21+
name: "test-[1,0,1,1,0,1]",
22+
input: []int{1, 0, 1, 1, 0, 1},
23+
want: 2,
24+
},
25+
{
26+
name: "test-[1,0,0,1,1,0,1]",
27+
input: []int{1, 0, 0, 1, 1, 0, 1},
28+
want: 2,
29+
},
30+
{
31+
name: "test-[1]",
32+
input: []int{1},
33+
want: 1,
34+
},
35+
{
36+
name: "test-[0]",
37+
input: []int{0},
38+
want: 0,
39+
},
40+
{
41+
name: "test-[]",
42+
input: []int{},
43+
want: 0,
44+
},
45+
{
46+
name: "test-[1,1,1,1]",
47+
input: []int{1, 1, 1, 1},
48+
want: 4,
49+
},
50+
}
51+
52+
testLog := leet.NewTestLog(len(tests))
53+
defer testLog.Render()
54+
55+
timeoutDuration := time.Second * 2
56+
57+
for idx, test := range tests {
58+
// 超时检测
59+
got := test.want
60+
timeout := leet.Timeout(timeoutDuration, func(ctx context.Context, cancel context.CancelFunc) {
61+
got = solution.Export(test.input)
62+
cancel()
63+
})
64+
65+
if timeout {
66+
testLog.Fail(idx+1, test.name, "timeout")
67+
continue
68+
}
69+
70+
if !reflect.DeepEqual(test.want, got) {
71+
testLog.Fail(idx+1, test.name, fmt.Sprintf("want: %v, got %v.", test.want, got))
72+
continue
73+
}
74+
75+
testLog.Pass(idx+1, test.name)
76+
}
77+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package solution
2+
3+
import (
4+
"fmt"
5+
"os"
6+
"runtime/debug"
7+
)
8+
9+
func Export(nums []int) int {
10+
defer func() {
11+
if r := recover(); r != nil {
12+
fmt.Println("Params: ", nums)
13+
fmt.Println("Panic:", r)
14+
fmt.Println()
15+
debug.PrintStack()
16+
os.Exit(0)
17+
}
18+
}()
19+
20+
return findMaxConsecutiveOnes(nums)
21+
}
22+
23+
/****************************************************/
24+
/******** 以下为 Leetcode 示例部分(提交PR请还原) *******/
25+
/******** 使用 (./leetcode clear) 初始化所有问题 *******/
26+
/****************************************************/
27+
28+
func findMaxConsecutiveOnes(nums []int) int {
29+
30+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package solution
2+
3+
import (
4+
"fmt"
5+
"os"
6+
"runtime/debug"
7+
)
8+
9+
func Export(nums []int) int {
10+
defer func() {
11+
if r := recover(); r != nil {
12+
fmt.Println("Params: ", nums)
13+
fmt.Println("Panic:", r)
14+
fmt.Println()
15+
debug.PrintStack()
16+
os.Exit(0)
17+
}
18+
}()
19+
20+
return findMaxConsecutiveOnes(nums)
21+
}
22+
23+
/****************************************************/
24+
/******** 以下为 Leetcode 示例部分(提交PR请还原) *******/
25+
/******** 使用 (./leetcode clear) 初始化所有问题 *******/
26+
/****************************************************/
27+
28+
func findMaxConsecutiveOnes(nums []int) int {
29+
30+
}

0 commit comments

Comments
 (0)