(long[] nums, int n, int i, boolean pick, long path, HashSet<Long> set)
| 230 | // 当前i位置的数字要或者不要全决策 |
| 231 | // 收集所有可能的异或和 |
| 232 | public static void dfs(long[] nums, int n, int i, boolean pick, long path, HashSet<Long> set) { |
| 233 | if (i > n) { |
| 234 | if (pick) { |
| 235 | set.add(path); |
| 236 | } |
| 237 | } else { |
| 238 | dfs(nums, n, i + 1, pick, path, set); |
| 239 | dfs(nums, n, i + 1, true, path ^ nums[i], set); |
| 240 | } |
| 241 | } |
| 242 | |
| 243 | } |