国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

算法通關(guān)村第十八關(guān)——排列問題

這篇具有很好參考價值的文章主要介紹了算法通關(guān)村第十八關(guān)——排列問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

LeetCode46.給定一個沒有重復(fù)數(shù)字的序列,返回其所有可能的全排列。例如:

輸入:[1,2,3]
輸出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

元素1在[1,2]中已經(jīng)使用過了,但是在[2,1]中還要再使用一次,所以就不能使用startlndex了,為此可以使用一個used數(shù)組來標(biāo)記已經(jīng)選擇的元素

class Permute {
    List<List<Integer>> res = new ArrayList<>();
    LinkedList<Integer> path = new LinkedList<>();
    boolean[] used;
    
    public List<List<Integer>> permute(int[] nums) {
        if (nums.length == 0) {
            return res;
        }
        used = new boolean[nums.length];
        permuteHelper(nums);
        return res;
    }
    
    private void permuteHelper(int[] nums) {
        if (path.size() == nums.length) {
            res.add(new ArrayList<>(path));
            return;
        }
        for (int i = 0; i < nums.length; i++) {
            if (used[i]) {
                continue;
            }
            used[i] = true;
            path.add(nums[i]);
            permuteHelper(nums);
            path.removeLast();
            used[i] = false;
        }
    }
}

在這里for循環(huán)中,used[i]的變化可以這樣理解,現(xiàn)在這一層剛上來當(dāng)前元素肯定是沒有使用過的,在執(zhí)行了將used數(shù)組當(dāng)前元素變?yōu)橐咽褂?,將?dāng)前元素添加到path中后,就要進(jìn)入他的下一層了,在他的下面幾層當(dāng)前元素都是使用過的。文章來源地址http://www.zghlxwxcb.cn/news/detail-698774.html

到了這里,關(guān)于算法通關(guān)村第十八關(guān)——排列問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 算法通過村第十八關(guān)-回溯|青銅筆記|什么叫回溯(中篇)

    算法通過村第十八關(guān)-回溯|青銅筆記|什么叫回溯(中篇)

    提示:陽光好的時候,會感覺還可以活很久,甚至可以活出喜悅。 --余秀華 回溯是非常重要的算法思想之一,主要解決一些暴力枚舉也搞不定的問題(這里埋個坑??)例如組合、分割、子集、棋盤等等。從性能角度來看回溯算法的效率并不是很高,但是對于暴力也解決不了

    2024年02月06日
    瀏覽(25)
  • 【夜深人靜學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法 | 第十二篇】動態(tài)規(guī)劃——背包問題

    【夜深人靜學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法 | 第十二篇】動態(tài)規(guī)劃——背包問題

    ? 目錄 ?前言: ?01背包問題: 二維數(shù)組思路: 一維數(shù)組思路: 總結(jié): ? ? ? 在前面我們學(xué)習(xí)動態(tài)規(guī)劃理論知識的時候,我就講過要介紹一下背包問題,那么今天我們就來講解一下背包問題。 在這里我們只介紹 01背包 ,至于分組背包和混合背包這種的已經(jīng)屬于競賽級別的

    2024年02月12日
    瀏覽(19)
  • [Go版]算法通關(guān)村第十三關(guān)黃金——數(shù)字?jǐn)?shù)學(xué)問題之?dāng)?shù)論問題(最大公約數(shù)、素數(shù)、埃氏篩、丑數(shù))

    [Go版]算法通關(guān)村第十三關(guān)黃金——數(shù)字?jǐn)?shù)學(xué)問題之?dāng)?shù)論問題(最大公約數(shù)、素數(shù)、埃氏篩、丑數(shù))

    題目鏈接:LeetCode-1979. 找出數(shù)組的最大公約數(shù) 輾轉(zhuǎn)相除法其核心部分為:若r 是a ÷ b的余數(shù),則 gcd(a, b)=gcd(b, r) 題目鏈接:LeetCode-204. 計數(shù)質(zhì)數(shù) 如果 x 是質(zhì)數(shù),那么大于 x 的 x 的倍數(shù) 2x,3x,… 一定不是質(zhì)數(shù)。 時間復(fù)雜度分析: 外層循環(huán)的迭代次數(shù)是 n-2,即 O ( n ) O(n) O ( n ) 次

    2024年02月11日
    瀏覽(24)
  • 算法通關(guān)村第十七關(guān)——跳躍游戲

    leetCode55 給定一個非負(fù)整數(shù)數(shù)組,你最初位于數(shù)組的第一個位置。數(shù)組中的每個元素代表你在該位置可以跳躍的最大長度,判斷你是否能夠到達(dá)最后一個位置。 示例1: 輸入:[2,3,1,1,4] 輸出:true 解釋:從位置 0 到 1 跳 1 步,然后跳 3 步到達(dá)最后一個位置。 示例2: 輸入:[3

    2024年02月10日
    瀏覽(20)
  • java數(shù)據(jù)結(jié)構(gòu)與算法刷題-----LeetCode667. 優(yōu)美的排列 II

    java數(shù)據(jù)結(jié)構(gòu)與算法刷題-----LeetCode667. 優(yōu)美的排列 II

    java數(shù)據(jù)結(jié)構(gòu)與算法刷題目錄(劍指Offer、LeetCode、ACM)-----主目錄-----持續(xù)更新(進(jìn)不去說明我沒寫完): https://blog.csdn.net/grd_java/article/details/123063846 解題思路 題目要求我們返回一個數(shù)組長度為n的數(shù)組,必須含有1~n的所有數(shù),并且從左到右,相鄰的元素依次相減,它們的差,必

    2024年01月25日
    瀏覽(25)
  • 算法通關(guān)村第十九關(guān)——最小路徑和

    算法通關(guān)村第十九關(guān)——最小路徑和

    LeetCode64. 給定一個包含非負(fù)整數(shù)的 m × n 網(wǎng)格 grid,請找出一條從左上角到右下角的路徑,使得路徑上的數(shù)字總和為最小。 輸入:grid=[[1,3,1],[1,5,1],[4,2,1]] 輸出:7 解釋:因為路徑1→3→1→1→1的總和最小。 對于每一塊方塊來說,只能從他的上邊或者左邊走過來,所以在for循環(huán)中

    2024年02月09日
    瀏覽(22)
  • 【數(shù)據(jù)結(jié)構(gòu)】回溯算法公式化解題 leetcode經(jīng)典題目帶刷:全排列、組合、子集

    【數(shù)據(jù)結(jié)構(gòu)】回溯算法公式化解題 leetcode經(jīng)典題目帶刷:全排列、組合、子集

    一、什么是回溯算法 回溯算法(Backtracking Algorithm)是一種解決 組合問題 、 排列問題 、 選擇問題 等一類問題的常用算法。它通過嘗試所有可能的選擇來找到問題的解,當(dāng)發(fā)現(xiàn)當(dāng)前選擇不符合要求時,就回溯到之前的狀態(tài),然后嘗試其他的選擇。 1、基本思想: 從問題的起

    2024年02月11日
    瀏覽(35)
  • 算法通關(guān)村第十二關(guān)-字符串基礎(chǔ)題目

    思路:遍歷字符串,將第i個字符和第N-i-1個字符串交換即可; 代碼實現(xiàn): 題目:反轉(zhuǎn)字符串2 思路:每2k個一組,將其前k個字符反轉(zhuǎn),使用i+k與字符串長度n判斷剩余字符串長度屬于(0,k)還是 [k,2k)之間;然后按照要求剩余字符串即可; 代碼實現(xiàn): 題目:僅僅反轉(zhuǎn)字母 思

    2024年01月22日
    瀏覽(21)
  • 算法通關(guān)村第十七關(guān):青銅挑戰(zhàn)-貪心其實很簡單

    算法通關(guān)村第十七關(guān):青銅挑戰(zhàn)-貪心其實很簡單

    1. 難以解釋的貪心算法 貪心學(xué)習(xí)法則:直接做題,不考慮貪不貪心 貪心(貪婪)算法 是指在問題盡心求解時,在每一步選擇中都采取最好或者最優(yōu)(最有利)的選擇,從而希望能夠?qū)е陆Y(jié)果最好或者最優(yōu)的算法 貪心算法所得到的結(jié)果不一定是最優(yōu)的結(jié)果,但是都是相對近似最

    2024年02月09日
    瀏覽(28)
  • 算法通關(guān)村第十六關(guān)——滑動窗口與堆結(jié)合

    LeetCode239給你一個整數(shù)數(shù)組nums,有一個大小為k的滑動窗口從數(shù)組的最左側(cè)移動到數(shù)組的最右側(cè)。你只可以看到在滑動窗口內(nèi)的k個數(shù)字?;瑒哟翱诿看沃幌蛴乙苿右晃唬祷鼗瑒哟翱谥械淖畲笾?。 優(yōu)先隊列中每個值存儲的是一個包含元素值和對應(yīng)索引的數(shù)組 [元素值, 索引] 。在

    2024年02月11日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包