491. 递增子序列(回溯算法)
生活随笔
收集整理的這篇文章主要介紹了
491. 递增子序列(回溯算法)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給你一個整數數組 nums ,找出并返回所有該數組中不同的遞增子序列,遞增子序列中 至少有兩個元素 。你可以按 任意順序 返回答案。
數組中可能含有重復元素,如出現兩個整數相等,也可以視作遞增序列的一種特殊情況。
示例 1:
輸入:nums = [4,6,7,7]
輸出:[[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]]
示例 2:
輸入:nums = [4,4,3,2,1]
輸出:[[4,4]]
提示:
1 <= nums.length <= 15
-100 <= nums[i] <= 100
這道題大眼一看就知道是集合類的題目,但是并不是要每一個節點,節點需要滿足長度大于等于2,
而且,這里也需要去重的操作,但是這個去重就不能像解析里說的那樣了,因為那種去重的前提是需要排序,這道題如果排序了題意就改變了,所以在這里需要用到set來對每一層重復的去重,
詳細說就是把每一層的數據依次存入set中,如果發現和之前的有重復,就直接continue跳過就可以了;
這種去重方式針對的就是原集合無法排序的情況,知道這種情況怎么辦就行;詳細注釋在代碼中;
代碼如下:
總結
以上是生活随笔為你收集整理的491. 递增子序列(回溯算法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 回溯算法刷题套路
- 下一篇: 47. 全排列 II(回溯算法)