[leetCode刷题笔记]47. Permutations II
来源:互联网 发布:八百字淘宝导购 编辑:程序博客网 时间:2024/06/07 01:41
思路是用一个Boolean array来保存每个元素用过的记录,如果用过,则跳过。
处理重复数的时候,先sort,然后如果前一个元素等于后一个元素而且前一个元素已经用过,则跳过后一个元素
public class Solution { public List<List<Integer>> permuteUnique(int[] nums) { List res = new ArrayList<List<Integer>>(); if (nums == null || nums.length == 0) return res; boolean[] used = new boolean[nums.length]; List<Integer> pre = new ArrayList<Integer>(); Arrays.sort(nums); helper(nums, used, pre, res); return res; } private void helper (int nums[], boolean[] used, List<Integer> pre, List<List<Integer>> res) { if (pre.size() == nums.length) { res.add(new ArrayList<Integer>(pre)); return; } for (int i = 0; i < nums.length; i++) { if (used[i]) continue; if (i > 0 && nums[i - 1] == nums[i] && !used[i - 1]) continue; used[i]=true; pre.add(nums[i]); helper(nums, used, pre, res); used[i]=false; pre.remove(pre.size() - 1); } return; }}
阅读全文
0 0
- [leetCode刷题笔记]47. Permutations II
- [LeetCode]47.Permutations II
- LeetCode 47.Permutations II
- LeetCode --- 47. Permutations II
- [Leetcode] 47. Permutations II
- [leetcode] 47.Permutations II
- LeetCode 47. Permutations II
- 47. Permutations II LeetCode
- Leetcode 47. Permutations II
- LeetCode 47. Permutations II
- LeetCode - 47. Permutations II
- [LeetCode] 47. Permutations II
- leetcode 47. Permutations II
- [LeetCode]--47. Permutations II
- [LeetCode]--47. Permutations II
- [leetcode] 47. Permutations II
- leetcode 47. Permutations II
- Leetcode-47. Permutations II
- 51nod 1247 可能的路径
- 数据结构--用C语言描述 耿国华 期中测试题
- 《本次项目开发有感》---自己老师的感悟
- 百度携手农行,用人工智能勾画Fintech未来模样
- 文章标题 整数与字符串互转
- [leetCode刷题笔记]47. Permutations II
- 大数据用户画像方法与实践(干货 转帖)
- jQuery 取选中的radio的值方法
- 自己-1
- 数据库日期函数
- 数据结构--用C语言描述 耿国华 期末试题
- WebSocket 和 Socket 的区别
- 数据结构排序算法
- 整数与字符串互转