关于这道题的重复的注意事项
查看原帖
关于这道题的重复的注意事项
882904
nottky楼主2023/4/10 17:57

最初我以为同样的数字,但是下标不一样选在一起算一种重复情况,于是最初的程序有这样一条判断

int last = -1;
for (int i = cur; i < n; ++i) {
	if (nums[i] != last) {
	 	last = nums[i];
	 	dfs(i + 1, pos + 1, sum + nums[i]);
		}
	 }

这样写是确保同一个数字只会一个位置出现一次,例如 4,3 2,2,3,4 情况下 2,3,4只会被记录一次。

但事实上,2,3,4需要被记录两次。于是删掉上述代码的“last”判断,测试通过。

2023/4/10 17:57
加载中...