leetcode(리트코드)485-Max Consecutive Ones
leetcode(리트코드)485-Max Consecutive Ones
leetcode Array intro - Max Consecutive Ones 문제입니다.
1. 문제
https://leetcode.com/explore/learn/card/fun-with-arrays/521/introduction/3238/
2. Input , Output
3. 분류 및 난이도
leetcode의 Array introduction에 있는 문제입니다.
eazy난이도의 문제입니다.
어렵지 않고, leetcode가 어떤 시스템인지 인지하기 위해 풀었습니다.
4. 문제 해석
- 해석은 배열 속에 있는 ‘1’의 연속적인 수열의 최대크기를 찾아 리턴하는 문제입니다. 즉 ‘0’이 하나 들어오면 0을 리턴 ‘1’이 하나 들어오면 1를 리턴해야합니다.
5. code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int countz = 0;
int result =0;
if(nums.size()==1 &&nums[0]==0)
return 0;
for(size_t i=0;i<nums.size();++i)
{
if(nums[i]==0)
countz=0;
else if(nums[i]==1)
{
countz++;
}
if(result<countz)
result =countz;
}
return result;
}
};
6. 결과 및 후기, 개선점
leetcode의 첫 문제인데 leetcode가 마음에 드는 점은 틀렸을 때 테스트코드를 공개해주고, 시간과 메모리사용량 순위를 보여줘서 더 개선하고 싶은 자극(?)이 든다.
근데 똑같은 코드를 제출할 때마다 시간이 다르게 측정되는 것 같은데 오해일수도 있으므로 다른 문제들을 풀면서 알아봐야겠다.
제일 많은 사람이 본 코드
직접 실행해보니 나와 시간이 똑같고 메모리는 오히려 더 많이 사용했다.. ?? simple code라 이해하기 쉽게 작성한 코드라 그런가?? 잘 모르겠다.
1
2
3
4
5
6
7
8
9
10
int findMaxConsecutiveOnes(vector<int>& nums) {
int max_cnt = 0, cnt = 0;
//auto를 지원하는 지 몰랐다. 사실 알아도 안썼음.
for (auto n : nums) {
// 나도 max를 사용하려 했지만, leetcode에 익숙하지 않아서 라이브러리를 불러올때마다 런타임 에러가 발생해서 그냥 안썼다.. 직접해보니 그냥 라이브러리가 기본적으로 적용되어있다..!
if (n == 1) max_cnt = max(++cnt, max_cnt);
else cnt = 0;
}
return max_cnt;
}
This post is licensed under CC BY 4.0 by the author.