給定乙個整型陣列, 你的任務是找到所有該陣列的遞增子串行,遞增子串行的長度至少是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]。
給定陣列中可能包含重複數字,相等的數字應該被視為遞增的一種情況。
深搜dfs回溯
對於選第i個數時,我們用乙個雜湊表記錄選過的數,以防重複選,詳細過程見**
vectorint>> ans;
void
dfs(
int begin,
int n,vector<
int>
& now,vector<
int>
& nums)
for(
int i=begin; isize()
; i++
)else
if(nums[i]
>=now.
back()
)}while
(isize()
-1&& nums[i]
==nums[i+1]
) i++;}
} vectorint>>
findsubsequences
(vector<
int>
& nums)
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 給定陣列中可能包含重複數字,相...