Line data Source code
1 : // Copyright (c) 2024 The Authors. All rights reserved.
2 : //
3 : // Licensed under the Apache License, Version 2.0 (the "License");
4 : // you may not use this file except in compliance with the License.
5 : // You may obtain a copy of the License at
6 : //
7 : // https://www.apache.org/licenses/LICENSE-2.0
8 : //
9 : // Unless required by applicable law or agreed to in writing, software
10 : // distributed under the License is distributed on an "AS IS" BASIS,
11 : // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 : // See the License for the specific language governing permissions and
13 : // limitations under the License.
14 :
15 : // Authors: liubang (it.liubang@gmail.com)
16 :
17 : #include <gtest/gtest.h>
18 :
19 : #include <vector>
20 :
21 : namespace {
22 : class Solution {
23 : public:
24 2 : int findMaxConsecutiveOnes(std::vector<int>& nums) {
25 2 : int ret = 0, cur = 0;
26 14 : for (auto num : nums) {
27 12 : if (num == 0) {
28 3 : ret = std::max(ret, cur);
29 3 : cur = 0;
30 : } else {
31 9 : cur++;
32 : }
33 : }
34 2 : return std::max(ret, cur);
35 : }
36 : };
37 : } // namespace
38 :
39 4 : TEST(Leetcode, max_consecutive_ones) {
40 1 : Solution s;
41 : {
42 1 : std::vector<int> nums = {1, 1, 0, 1, 1, 1};
43 1 : auto res = s.findMaxConsecutiveOnes(nums);
44 1 : EXPECT_EQ(3, res);
45 1 : }
46 : {
47 1 : std::vector<int> nums = {1, 0, 1, 1, 0, 1};
48 1 : auto res = s.findMaxConsecutiveOnes(nums);
49 1 : EXPECT_EQ(2, res);
50 1 : }
51 1 : }
|