Leetcode Java Sum of All Subset XOR Totals
업데이트:
문제
코드
class Solution {
public int subsetXORSum(int[] nums) {
return this.dfs(nums, 0, 0);
}
private int dfs(int[] nums, int index, int curr) {
if (index == nums.length) {
return curr;
} else {
return this.dfs(nums, index + 1, curr ^ nums[index]) + this.dfs(nums, index + 1, curr);
}
}
}
결과
설명
-
nums내 값들을 이용한 부분 배열들의 값들을 XOR 비트 연산한 값을 더한 결과를 반환하는 문제이다.
-
3번에서 정의한 dfs(int[] nums, int index, int curr) 메서드의 index와 curr에 0을 넣고 수행한 결과를 주어진 문제의 결과로 반환한다.
-
DFS 방식으로 합계하기 위한 dfs(int[] nums, int index, int curr) 메서드를 정의한다.
- index와 length가 동일한 마지막 위치의 값인 경우, curr을 반환한다.
- 위의 경우가 아니라면 아래의 두 값의 합을 반환한다.
- index에 $index + 1$과 curr에 curr과 nums[index]의 XOR 비트 연산을 수행한 값을 넣어 재귀 호출을 수행한 결과.
- index에 $index + 1$을 넣어 재귀 호출을 수행한 결과.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기