[leetcode]78. Subsets(Java)
来源:互联网 发布:北京海量数据离职 编辑:程序博客网 时间:2024/05/18 02:41
https://leetcode.com/problems/subsets/#/description
Given a set of distinct integers, nums, return all possible subsets.
Note: The solution set must not contain duplicate subsets.
For example,
If nums = [1,2,3]
, a solution is:
[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]
package go.jacob.day629;import java.util.ArrayList;import java.util.List;public class Demo3 {/* * Runtime: 2 ms.Your runtime beats 30.58 % of java submissions. * 牛客网和leetcode的区别是是否对结果进行排序 */public List<List<Integer>> subsets(int[] nums) {List<List<Integer>> res = new ArrayList<List<Integer>>();if (nums == null || nums.length < 1)return res;ArrayList<Integer> list = new ArrayList<Integer>();find(res, nums, list, 0);return res;}private void find(List<List<Integer>> res, int[] nums, ArrayList<Integer> list, int start) {res.add(new ArrayList<Integer>(list));if (start >= nums.length)return;for (int i = start; i < nums.length; i++) {list.add(nums[i]);find(res, nums, list, i + 1);list.remove(list.size() - 1);}}}
再贴一个牛客网运行通过的。除了需要自定义比较器,其他解法相同
https://www.nowcoder.com/questionTerminal/c333d551eb6243e0b4d92e37a06fbfc9
package go.jacob.day629;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;/** * @author Jacob */public class Demo4 {/* * Runtime: 2 ms.Your runtime beats 30.58 % of java submissions. * 该题和leetcode的区别是是否对结果进行排序 */public ArrayList<ArrayList<Integer>> subsets(int[] nums) {ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();if (nums == null || nums.length < 1)return res;Arrays.sort(nums);ArrayList<Integer> list = new ArrayList<Integer>();find(res, nums, list, 0);// 对结果进行排序,自定义比较器Collections.sort(res, new Comparator<ArrayList<Integer>>() {@Overridepublic int compare(ArrayList<Integer> o1, ArrayList<Integer> o2) {int size1 = o1.size(), size2 = o2.size();if (size1 != size2)return size1 - size2;else {for (int i = 0; i < o1.size(); i++) {if (o1.get(i) == o2.get(i))continue;elsereturn o1.get(i) - o2.get(i);}}return 0;}});return res;}private void find(ArrayList<ArrayList<Integer>> res, int[] nums, ArrayList<Integer> list, int start) {res.add(new ArrayList<Integer>(list));if (start >= nums.length)return;for (int i = start; i < nums.length; i++) {list.add(nums[i]);find(res, nums, list, i + 1);list.remove(list.size() - 1);}}}
阅读全文
0 0
- 【leetcode】78. Subsets【java】
- [leetcode]78. Subsets(Java)
- 78.Subsets leetcode java
- [Leetcode] Subsets (Java)
- [Leetcode] Subsets II (Java)
- LeetCode(078) Subsets (Java)
- [LeetCode][Java] Subsets
- [LeetCode][Java] Subsets II
- [leetcode-78]subsets(java)
- LeetCode 78. Subsets
- [LeetCode]78.Subsets
- LeetCode --- 78. Subsets
- [Leetcode] 78. Subsets
- [leetcode] 78.Subsets
- 【leetcode】78. Subsets
- Leetcode 78. Subsets
- 78. Subsets LeetCode
- [leetcode] 78. Subsets
- 我的服务器开发之路-centos中crontab定时器的使用
- 不能用 ngOnChanges 侦测query结果集的变化, 要用 observable subscribe
- 初探ansible
- 使用font-size:0 来去掉inline-block元素之间的空隙
- 关于sitemesh装饰器的使用方式
- [leetcode]78. Subsets(Java)
- 22题:栈的压入、弹出顺序
- windows10IoT+树莓派官方摄像头(Pi Camara) == 暂时无解
- Java String 提取 http 网址
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- 【Linux】子进程的异步等待方式
- ajax beforeSend complete 方法
- VUE开发环境的搭建
- centos启动tomcat后局域网无法访问,发现8080端口被tcp6占用解决方法