[LeetCode] Check If All 1's Are at Least Length K Places Away

아르당·6일 전

LeetCode

목록 보기
301/307
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

이진 배열 nums와 정수 k가 주어졌을 때, 모든 1이 서로 최소 k칸 이상 떨어져 있으면 true, 그렇지 않다면 false를 반환해라.

Example

#1

Input: nums = [1, 0, 0, 0, 1, 0, 0, 1], k = 2
Output: true

#2

Input: nums = [1, 0, 0, 1, 0, 1], k = 2
Output: false

Constraints

  • 1 <= nums.length <= 10^5
  • 0 <= k <= nums.length
  • nums[i]는 0 또는 1이다.

Solved

class Solution {
    public boolean kLengthApart(int[] nums, int k) {
        int lastIndex = -1;

        for(int i = 0; i < nums.length; i++){
            if(nums[i] == 1){
                if(lastIndex != -1 && i - lastIndex - 1 < k){
                    return false;
                }

                lastIndex = i;
            }
        }

        return true;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글