leetcode491. 递增子序列(回溯算法)
生活随笔
收集整理的這篇文章主要介紹了
leetcode491. 递增子序列(回溯算法)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
給定一個整型數(shù)組, 你的任務是找到所有該數(shù)組的遞增子序列,遞增子序列的長度至少是2。
示例:
輸入: [4, 6, 7, 7]
輸出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]]
代碼
class Solution {List<List<Integer>> res=new ArrayList<>();Set<List<Integer>> s=new HashSet<>();//去重public List<List<Integer>> findSubsequences(int[] nums) {getFindSubsequences(nums,0,new ArrayList<>());return res;}public void getFindSubsequences(int[] nums,int loc,List<Integer> tmp) {/回溯if(tmp.size()>=2&&!s.contains(tmp)) {res.add(new ArrayList<>(tmp));s.add(new ArrayList<>(tmp));}if(loc==nums.length) return;for(int i=loc;i<nums.length;i++){if(tmp.size()!=0&&nums[i]<tmp.get(tmp.size()-1))//判斷遞增continue;tmp.add(nums[i]);getFindSubsequences(nums, i+1, tmp);tmp.remove(tmp.size()-1);}} }總結
以上是生活随笔為你收集整理的leetcode491. 递增子序列(回溯算法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到去医院买药什么意思
- 下一篇: leetcode1471. 数组中的 k