Leetcode Java Make Two Arrays Equal by Reversing Subarrays
업데이트:
문제
코드
class Solution {
public boolean canBeEqual(int[] target, int[] arr) {
int[] counts = new int[1001];
for (int i = 0; i < target.length; i++) {
counts[target[i]]++;
counts[arr[i]]--;
}
for (int count : counts) {
if (count != 0) {
return false;
}
}
return true;
}
}
결과
설명
-
arr 배열로 target 배열과 동일한 형태로 만들 수 있는지 검증하는 문제이다.
- counts는 target과 arr 배열 내 값들의 갯수를 계산하기 위한 변수로, 최댓값인 1000보다 1 큰 크기의 정수 배열로 초기화하고 아래를 수행한다.
- target 배열 내 값에 해당하는 위치의 값을 각각 증가시켜준다.
- arr 배열 내 값에 해당하는 위치의 값을 각각 감소시켜준다.
-
counts 내 모든 값이 0이 아닌 경우, 변환이 불가능하므로 false를 주어진 문제의 결과로 반환한다.
- 반복이 완료되면 변환이 가능하므로 true를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기