zvvq技术分享网

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

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

内容来自samhan666

491. 非减子数列

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

示例1:

内容来自zvvq

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

copyright zvvq

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

内容来自zvvq

示例2:

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

输出:[[4,4]]

限制: 内容来自samhan

1 -100 原始页面 内容来自zvvq

1

zvvq好,好zvvq

2

copyright zvvq

3 zvvq

4 本文来自zvvq

5 内容来自zvvq,别采集哟

6 本文来自zvvq

7 zvvq好,好zvvq

8

内容来自zvvq

9 zvvq.cn

10

本文来自zvvq

11

zvvq好,好zvvq

12 本文来自zvvq

13

内容来自zvvq

14 zvvq好,好zvvq

15 zvvq.cn

16 zvvq.cn

17

zvvq好,好zvvq

18

内容来自samhan

19

zvvq好,好zvvq

20

zvvq.cn

21

copyright zvvq

22

zvvq好,好zvvq

23

内容来自samhan666

24 zvvq好,好zvvq

25 zvvq.cn

26 内容来自zvvq,别采集哟

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

zvvq.cn

List<list>&gt; list = new ArrayList(); 内容来自zvvq

List<integer> seq = new LinkedList(); 内容来自zvvq,别采集哟

Set<integer> set = new HashSet(); zvvq好,好zvvq

backTracking(列表, seq, nums, 0, 设置); 内容来自samhan

返回列表;

本文来自zvvq

}

zvvq

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

zvvq

if(start == nums.length){

本文来自zvvq

返回; zvvq好,好zvvq

}

内容来自samhan

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)){ 内容来自samhan

list.add(new ArrayList(seq)); 

copyright zvvq

}

zvvq

if(seq.size() == 1 || nums[i]&gt;= seq.get(seq.size()-1)){ 内容来自zvvq,别采集哟

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

本文来自zvvq

}

本文来自zvvq

// 回溯 内容来自zvvq,别采集哟

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

zvvq

}

内容来自zvvq,别采集哟

}

内容来自zvvq,别采集哟

</nums.length></integer></integer></list></integer></integer></list></list> 本文来自zvvq

46. 排列

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

内容来自zvvq,别采集哟

示例1:

copyright zvvq

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

本文来自zvvq

输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1] 】 内容来自samhan666

示例2:

输入:nums = [0,1] 内容来自samhan

输出:[[0,1],[1,0]]

内容来自zvvq,别采集哟

示例3:

输入:nums = [1]

内容来自samhan

输出:[[1]]

限制:

内容来自samhan

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

zvvq.cn

1 内容来自samhan

2 内容来自samhan

3

copyright zvvq

4

内容来自zvvq,别采集哟

5 zvvq.cn

6

本文来自zvvq

7

zvvq

8 本文来自zvvq

9

zvvq

10 copyright zvvq

11 zvvq.cn

12

内容来自samhan666

13 内容来自samhan

14 copyright zvvq

15

zvvq.cn

16 本文来自zvvq

17

zvvq好,好zvvq

18 内容来自zvvq,别采集哟

19

内容来自samhan666

20

zvvq.cn

21 zvvq.cn

22 zvvq好,好zvvq

23

内容来自samhan

24

zvvq

25 zvvq

26 zvvq好,好zvvq

27

内容来自samhan

28

内容来自samhan

29 zvvq.cn

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

List<list>&gt; list = new ArrayList(); 内容来自zvvq,别采集哟

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

zvvq

Integer[] numsI = Arrays.stream(nums).boxed().toArray(Integer[]::new); 内容来自zvvq,别采集哟

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

backTracking(列表、排列、numList);

内容来自zvvq,别采集哟

返回列表; copyright zvvq

}

内容来自zvvq

public void backTracking(List<list>&gt; list, List<integer> 排列, List<integer> nums){ 内容来自zvvq,别采集哟

if(nums.size()==0){

内容来自zvvq,别采集哟

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

返回;

zvvq好,好zvvq

}

zvvq.cn

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

内容来自zvvq

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

backTracking(列表、排列、workNums);

内容来自zvvq,别采集哟

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

}

内容来自zvvq,别采集哟

} 内容来自samhan666

</nums.size></integer></integer></list></integer></integer></list></list> 本文来自zvvq

47. 排列 II

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

示例1: zvvq.cn

输入:nums = [1,1,2] zvvq.cn

输出:

内容来自zvvq

[[1,1,2], 内容来自samhan666

[1,2,1], zvvq好,好zvvq

[2,1,1]]

内容来自samhan

示例2:

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

内容来自samhan666

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

限制:

copyright zvvq

1 -10 原始页面 zvvq好,好zvvq

1

内容来自samhan666

2

内容来自samhan666

3 zvvq

4

内容来自samhan

5 zvvq

6 zvvq好,好zvvq

7

zvvq好,好zvvq

8 内容来自samhan666

9 内容来自zvvq

10

内容来自samhan

11 内容来自samhan

12

copyright zvvq

13 copyright zvvq

14 内容来自zvvq

15

zvvq好,好zvvq

16 copyright zvvq

17 内容来自samhan

18

zvvq.cn

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

zvvq.cn

公共列表&gt; permuteUnique(int[] nums) {

内容来自zvvq

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

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

backTracking(排列、数字、标志); 内容来自zvvq,别采集哟

返回列表;        本文来自zvvq

}

copyright zvvq

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

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

zvvq

list.add(new ArrayList(排列)); 本文来自zvvq

返回;

内容来自samhan

}

内容来自samhan666

Set<integer> set = new HashSet();

内容来自samhan

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

内容来自samhan666

以上就是LeetCode DayBackTracking 第 4 部分的详细内容,更多请关注其它相关文章! 内容来自zvvq,别采集哟