알고리즘

[leetcode] 485. Max Consecutive Ones

개발정리 2021. 11. 6. 10:31
 

Explore - LeetCode

LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore.

leetcode.com

[Success]

이진수로 구성된 배열이 주어졌을 때, 연속되는 1의 값의 최대 수를 구하는 문제 

 

 

 

풀이

배열길이 만큼 돌면서 특정 인덱스 값이 1 이면, count 값을 증가시키고 count 가 최대 값으로 설정될 때마다 maxCount 에 할당해준 후 최종적으로 maxCount 를 return 시킨다. 

class Solution {
  public int findMaxConsecutiveOnes(int[] nums) {
        if (nums == null) return -1; 

        int count = 0; 
        int maxCount = 0; 
      
        for (int i=0; i<nums.length; i++) {
            
            if (nums[i] == 1) {
                ++count;
                if (maxCount < count) maxCount = count;    
            } else {
                count=0;
            }
            
        }

        return maxCount;
  }
}

 

 

 

leetcode solution

인덱스의 값이 1인 경우엔 count 값만 증가시키고, 아닌 경우엔 Math.max 함수를 써서 count 의 최대 값을 maxCount 와 비교하며 큰 값이 maxCount 에 할당될 수 있도록 하였다. 최종적으로는 한번 더 Math.max 함수를 통해 count 와 maxCount 값을 비교한 후 return 시킨다.

class Solution {
  public int findMaxConsecutiveOnes(int[] nums) {
    int count = 0;
    int maxCount = 0;
    for(int i = 0; i < nums.length; i++) {
      if(nums[i] == 1) {
        // Increment the count of 1's by one.
        count += 1;
      } else {
        // Find the maximum till now.
        maxCount = Math.max(maxCount, count);
        // Reset count of 1.
        count = 0;
      }
    }
    return Math.max(maxCount, count);
  }
}