給定乙個整型陣列, 你的任務是找到所有該陣列的遞增子串行,遞增子串行的長度至少是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]]
說明:給定陣列的長度不會超過15。
陣列中的整數範圍是 [
-100
,100
]。給定陣列中可能包含重複數字,相等的數字應該被視為遞增的一種情況。
這題也是使用回溯法求解,相比第90題.子集ii,這題需要得到所有的遞增子集,而第90題中是將陣列排序後達到對樹同一層元素去重的目的,本題中不能使用這種方法,而應使用set
容器。當當前元素小於路徑path
集合中最後乙個元素是說明子集不是遞增的,所以也應該跳過選取:
class
solution
private
void
backtracking
(int
nums,
int startindex)
setset =
newhashset
<
>()
;// 對本層元素去重
for(
int i = startindex; i < nums.length; i++)}
}
leetcode491 遞增子串行
這一題使用dfs回溯法,我們先來分析一下這種方法的時間複雜度 如圖。由於我們知道陣列的長度不超過15,所以這顆樹最壞的情況的啊hi見複雜度為2 15,也就是幾十萬的計算量,是可以接收的。那麼我們根據思路寫出演算法 class solution public void dfs set ans,list...
leetcode 491 遞增子串行
給定乙個整型陣列,你的任務是找到所有該陣列的遞增子串行,遞增子串行的長度至少是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 說明 給定陣列的長度不會超過15。陣列中的整數範圍是 100,100 給定陣列中可能包含重複數字,相...
leetcode 491 遞增子串行
給定乙個整型陣列,你的任務是找到所有該陣列的遞增子串行,遞增子串行的長度至少是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 說明 給定陣列的長度不會超過15。陣列中的整數範圍是 100,100 給定陣列中可能包含重複數字,相...