zvvq技术分享网

LeetCode DayBackTracking 第 4 部分(leetcode可以用什么

作者:zvvq博客网
导读491. 非减子数列 给定一个整数数组 nums,返回给定数组中至少有两个元素的所有不同的可能非递减子序列。您可以按任何顺序返回答案。 示例1: 输入:nums = [4,6,7,7] 输出:[[4,6],[4,6,7]

内容来自samhan

491. 非减子数列

给定一个整数数组 nums,返回给定数组中至少有两个元素的所有不同的可能非递减子序列。您可以按任何顺序返回答案。 内容来自zvvq

示例1:

zvvq.cn

输入:nums = [4,6,7,7]

内容来自samhan

输出:[[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6, 7,7],[7,7]] copyright zvvq

示例2:

输入:nums = [4,4,3,2,1]

内容来自zvvq

输出:[[4,4]]

限制: zvvq

1 -100 原始页面

zvvq.cn

1 zvvq

2 zvvq好,好zvvq

3

zvvq

4 copyright zvvq

5 zvvq

6 本文来自zvvq

7 zvvq

8 本文来自zvvq

9 zvvq

10 内容来自zvvq,别采集哟

11

内容来自zvvq

12

内容来自zvvq,别采集哟

13

copyright zvvq

14 zvvq好,好zvvq

15 内容来自zvvq

16

内容来自samhan

17

zvvq好,好zvvq

18

内容来自samhan666

19 内容来自zvvq,别采集哟

20 内容来自samhan

21 内容来自samhan666

22 zvvq

23

zvvq

24 zvvq

25

内容来自zvvq,别采集哟

26 内容来自zvvq

public List<list>&gt; findSubsequences(int[] nums) { 内容来自samhan666

List<list>&gt; list = new ArrayList(); zvvq好,好zvvq

List<integer> seq = new LinkedList();

内容来自samhan

Set<integer> set = new HashSet();

内容来自samhan666

backTracking(列表, seq, nums, 0, 设置);

内容来自samhan666

返回列表; zvvq.cn

} zvvq.cn

public void backTracking(List<list>&gt;list, List<integer> seq, int[] nums, int start, Set<integer> set){ 内容来自samhan

if(start == nums.length){ 内容来自zvvq

返回;

zvvq.cn

}

本文来自zvvq

for(int i=start; i<nums.length i if set.contains>= 1 &amp;&amp; (nums[i]  1 &amp;&amp; nums[i]&gt;= seq.get(seq.size()-2)){

内容来自zvvq

list.add(new ArrayList(seq)); 

内容来自samhan666

}

内容来自samhan666

if(seq.size() == 1 || nums[i]&gt;= seq.get(seq.size()-1)){ zvvq

backTracking(list,seq, nums, i+1, new HashSet()); zvvq好,好zvvq

}

内容来自samhan

// 回溯 zvvq

seq.remove(seq.size()-1);

zvvq好,好zvvq

}

内容来自zvvq

} 内容来自zvvq

</nums.length></integer></integer></list></integer></integer></list></list>

本文来自zvvq

46. 排列

给定一个由不同整数组成的数组 nums,返回所有可能的排列。您可以按任何顺序返回答案。

内容来自zvvq

示例1:

内容来自samhan

输入:nums = [1,2,3]

内容来自zvvq,别采集哟

输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1] 】

内容来自samhan

示例2:

输入:nums = [0,1] 本文来自zvvq

输出:[[0,1],[1,0]] 内容来自samhan666

示例3:

输入:nums = [1]

内容来自zvvq

输出:[[1]]

限制: zvvq

1 -10 nums 的所有整数都是唯一的。

copyright zvvq

1 zvvq好,好zvvq

2

zvvq.cn

3 copyright zvvq

4

本文来自zvvq

5

内容来自zvvq,别采集哟

6

copyright zvvq

7

copyright zvvq

8

内容来自zvvq,别采集哟

9 本文来自zvvq

10

内容来自samhan666

11 zvvq

12

zvvq.cn

13

copyright zvvq

14 zvvq好,好zvvq

15 zvvq.cn

16 zvvq好,好zvvq

17

内容来自zvvq,别采集哟

18 copyright zvvq

19

内容来自zvvq,别采集哟

20 内容来自samhan666

21 内容来自samhan666

22

内容来自samhan

23 内容来自samhan

24

zvvq.cn

25

内容来自samhan666

26 内容来自zvvq

27 内容来自samhan666

28

copyright zvvq

29 zvvq好,好zvvq

public List<list>&gt; permute(int[] nums) {

本文来自zvvq

List<list>&gt; list = new ArrayList(); zvvq

List<integer> 排列 = new LinkedList(); 内容来自samhan666

Integer[] numsI = Arrays.stream(nums).boxed().toArray(Integer[]::new); 本文来自zvvq

List<integer> numList = new ArrayList(Arrays.asList(numsI));

zvvq

backTracking(列表、排列、numList); copyright zvvq

返回列表;

本文来自zvvq

} 内容来自samhan

public void backTracking(List<list>&gt; list, List<integer> 排列, List<integer> nums){

copyright zvvq

if(nums.size()==0){ 内容来自zvvq,别采集哟

list.add(new ArrayList(排列));

zvvq好,好zvvq

返回;

本文来自zvvq

}

内容来自samhan

for(int i=0; i<nums.size i permutation.add list> workNums = new ArrayList(nums); copyright zvvq

workNums.remove(Integer.valueOf(nums.get(i))); copyright zvvq

backTracking(列表、排列、workNums); 内容来自samhan

排列.删除(排列.size()-1);

copyright zvvq

} 内容来自zvvq,别采集哟

}

内容来自zvvq

</nums.size></integer></integer></list></integer></integer></list></list> 内容来自samhan666

47. 排列 II

给定可能包含重复项的数字 nums 集合,以任何顺序返回所有可能的唯一排列。

内容来自samhan

示例1: 内容来自zvvq,别采集哟

输入:nums = [1,1,2] 本文来自zvvq

输出:

内容来自zvvq,别采集哟

[[1,1,2],

内容来自samhan

[1,2,1],

本文来自zvvq

[2,1,1]]

内容来自zvvq,别采集哟

示例2:

输入:nums = [1,2,3]

zvvq

输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1] 】

限制: copyright zvvq

1 -10 原始页面

内容来自samhan

1 内容来自samhan666

2 zvvq

3

copyright zvvq

4 内容来自zvvq,别采集哟

5

copyright zvvq

6 内容来自samhan666

7 内容来自samhan666

8

zvvq

9 内容来自samhan666

10 内容来自samhan

11

内容来自samhan666

12

zvvq.cn

13

zvvq.cn

14 内容来自zvvq

15 内容来自samhan666

16 内容来自samhan666

17 内容来自zvvq,别采集哟

18 本文来自zvvq

List<list>&gt; list = new ArrayList();

copyright zvvq

公共列表&gt; permuteUnique(int[] nums) { 内容来自zvvq

List<integer> 排列 = new LinkedList();

copyright zvvq

int[] flags = new int[nums.length];

本文来自zvvq

backTracking(排列、数字、标志);

内容来自samhan

返回列表;       

zvvq.cn

} zvvq

public void backTracking(List<integer> permutation, int[] nums, int[] flags){

zvvq.cn

if(permutation.size() == nums.length){

copyright zvvq

list.add(new ArrayList(排列)); 内容来自samhan666

返回; zvvq

}

zvvq

Set<integer> set = new HashSet();

本文来自zvvq

for(int i=0; i<nums.length i if set.contains int num="nums[i];" backtracking></nums.length></integer></integer></integer></list>

内容来自zvvq,别采集哟

以上就是LeetCode DayBackTracking 第 4 部分的详细内容,更多请关注其它相关文章!

zvvq.cn