1、78. 子集
给你一个整数数组 nums
,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
解答:和上题一样,多了个判断:if (i>start && nums[i]==nums[i-1]) continue;
i>start的意思是,每层的访问,第一个元素是肯定要用的上的,要判断的是第1个元素之后如果有相同元素,就跳过。
3、46. 全排列
给定一个 没有重复 数字的序列,返回其所有可能的全排列。
解答:swap(num[i] ,num[start])意思是,把要交换的数字放到第一个位置上去。
给定一个可包含重复数字的序列 nums
,按任意顺序 返回所有不重复的全排列。
解答:因为swap过,所以交换后的数组不一定还是顺序的。