[Leetcode][第491题][JAVA][递增子序列][回溯][RK算法]
【問(wèn)題描述】[中等]
【解答思路】
1. 二進(jìn)制枚舉 + 哈希
復(fù)雜度
2. 遞歸枚舉 + 減枝
一個(gè)遞歸枚舉子序列的通用模板,即用一個(gè)臨時(shí)數(shù)組temp 來(lái)保存當(dāng)前選出的子序列,使用cur 來(lái)表示當(dāng)前位置的下標(biāo),在 dfs(cur, nums) 開(kāi)始之前,[0,cur?1] 這個(gè)區(qū)間內(nèi)的所有元素都已經(jīng)被考慮過(guò),而[cur,n] 這個(gè)區(qū)間內(nèi)的元素還未被考慮。在執(zhí)行 dfs(cur, nums) 時(shí),我們考慮 cur 這個(gè)位置選或者不選,如果選擇當(dāng)前元素,那么把當(dāng)前元素加入到temp 中,然后遞歸下一個(gè)位置,在遞歸結(jié)束后,應(yīng)當(dāng)把temp 的最后一個(gè)元素刪除進(jìn)行回溯;如果不選當(dāng)前的元素,直接遞歸下一個(gè)位置。
List<List<Integer>> ans = new ArrayList<List<Integer>>(); List<Integer> temp = new ArrayList<Integer>(); public void dfs(int cur, int[] nums) {if (cur == nums.length) {// 判斷是否合法,如果合法判斷是否重復(fù),將滿足條件的加入答案if (isValid() && notVisited()) {ans.add(new ArrayList<Integer>(temp));}return;}// 如果選擇當(dāng)前元素temp.add(nums[cur]);dfs(cur + 1, nums);temp.remove(temp.size() - 1);// 如果不選擇當(dāng)前元素dfs(cur + 1, nums); }復(fù)雜度
【總結(jié)】
1. 一個(gè)遞歸枚舉子序列的通用模板,即用一個(gè)臨時(shí)數(shù)組temp 來(lái)保存當(dāng)前選出的子序列,使用cur 來(lái)表示當(dāng)前位置的下標(biāo),在 dfs(cur, nums) 開(kāi)始之前,[0,cur?1] 這個(gè)區(qū)間內(nèi)的所有元素都已經(jīng)被考慮過(guò),而[cur,n] 這個(gè)區(qū)間內(nèi)的元素還未被考慮。在執(zhí)行 dfs(cur, nums) 時(shí),我們考慮 cur 這個(gè)位置選或者不選,如果選擇當(dāng)前元素,那么把當(dāng)前元素加入到temp 中,然后遞歸下一個(gè)位置,在遞歸結(jié)束后,應(yīng)當(dāng)把temp 的最后一個(gè)元素刪除進(jìn)行回溯;如果不選當(dāng)前的元素,直接遞歸下一個(gè)位置。
List<List<Integer>> ans = new ArrayList<List<Integer>>(); List<Integer> temp = new ArrayList<Integer>(); public void dfs(int cur, int[] nums) {if (cur == nums.length) {// 判斷是否合法,如果合法判斷是否重復(fù),將滿足條件的加入答案if (isValid() && notVisited()) {ans.add(new ArrayList<Integer>(temp));}return;}// 如果選擇當(dāng)前元素temp.add(nums[cur]);dfs(cur + 1, nums);temp.remove(temp.size() - 1);// 如果不選擇當(dāng)前元素dfs(cur + 1, nums); }2.RK算法 哈希散列表
【數(shù)據(jù)結(jié)構(gòu)與算法】字符串匹配 BF算法 RK算法
轉(zhuǎn)載鏈接:https://leetcode-cn.com/problems/increasing-subsequences/solution/di-zeng-zi-xu-lie-by-leetcode-solution/
總結(jié)
以上是生活随笔為你收集整理的[Leetcode][第491题][JAVA][递增子序列][回溯][RK算法]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 06-BCD计数器设计与应用——小梅哥F
- 下一篇: 【常用正则大全】