leetcode491 遞增子串行 dfs

2021-10-23 19:26:00 字數 872 閱讀 7002

給定乙個整型陣列, 你的任務是找到所有該陣列的遞增子串行,遞增子串行的長度至少是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]

]

說明:

這裡要說明一下:題目要求的是遞增子串行,子串行和子串的唯一區別是:子串行可以不連續。這裡很明顯:子串行要保持原來陣列中每個數字的相對順序。

借助set去重:

class

solution

return vres;

}void

dfs(vector<

int>

& nums,

int pos, vector<

int> cur)}}

};

在dfs的過程中進行剪枝去重:

通過回溯時,儲存彈出的元素實現,保證彈出的元素不會再進入當前陣列中。

class

solution

void

dfs(vector<

int>

& nums,

int pos, vector<

int> cur)}}

};

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 給定陣列中可能包含重複數字,相...