Leetcode Java Divide Array Into Arrays With Max Difference
업데이트:
문제
코드
class Solution {
public int partitionArray(int[] nums, int k) {
Arrays.sort(nums);
int result = 1;
for (int i = 1, j = 0; i < nums.length; i++) {
if (nums[i] - nums[j] > k) {
result++;
j = i;
}
}
return result;
}
}
결과
설명
-
정수 배열인 nums를 최댓값과 최솟값의 차이가 최대 k가 되도록 나눌 수 있는 최소 부분 배열의 갯수를 구하는 문제이다.
-
nums의 값을 오름차순 정렬하고, 결과를 저장할 변수인 result를 1로 초기화한다.
- 1부터 nums의 길이 미만까지 i를 증가시키고, j는 0으로 초기화 하여 아래를 반복한다.
- $nums[i] - nums[j]$의 값이 k 초과인 경우, result를 증가시키고 시작 위치를 저장할 j에 현재 위치인 i를 넣어준다.
- 반복이 완료되면 최소 부분 배열의 갯수가 저장된 result를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기