成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

LeetCode31.下一個(gè)排列 JavaScript

luxixing / 2061人閱讀

摘要:實(shí)現(xiàn)獲取下一個(gè)排列的函數(shù),算法需要將給定數(shù)字序列重新排列成字典序中下一個(gè)更大的排列。如果不存在下一個(gè)更大的排列,則將數(shù)字重新排列成最小的排列即升序排列。

實(shí)現(xiàn)獲取下一個(gè)排列的函數(shù),算法需要將給定數(shù)字序列重新排列成字典序中下一個(gè)更大的排列。

如果不存在下一個(gè)更大的排列,則將數(shù)字重新排列成最小的排列(即升序排列)。

必須原地修改,只允許使用額外常數(shù)空間。

以下是一些例子,輸入位于左側(cè)列,其相應(yīng)輸出位于右側(cè)列。

1,2,3 → 1,3,2
3,2,1 → 1,2,3
1,1,5 → 1,5,1

答案參考:

/**
 * @param {number[]} nums
 * @return {void} Do not return anything, modify nums in-place instead.
 */
var nextPermutation = function(nums) {
    for(var i = nums.length - 1; i > 0 && nums[i] <= nums[i - 1]; i--);
    if(i === 0){
        reverse(0, nums.length - 1);
        return;
    }
    for(var j = i + 1; j < nums.length && nums[i - 1] < nums[j]; j++);
    swap(i - 1, j - 1);
    reverse(i, nums.length - 1);
    return;    
    
    function reverse(start, end){
        while(start < end){
            swap(start, end);
            start++;
            end--;
        }
    }
    function swap(i, j){
        var tmp = nums[i];
        nums[i] = nums[j];
        nums[j] = tmp;
    }
};

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/101766.html

相關(guān)文章

  • leetcode 31 Next Permutation

    摘要:我們所找到的這個(gè)元素就是排序需要改變的第一個(gè)元素。然后我們選取一個(gè)剛好大于此元素的數(shù),與當(dāng)前元素進(jìn)行替換。并對(duì)后面的所有元素重新按照升序排列就可以得到最終的答案。 題目詳情 Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of...

    binaryTree 評(píng)論0 收藏0
  • 力扣(LeetCode)31

    摘要:如果不存在下一個(gè)更大的排列,則將數(shù)字重新排列成最小的排列即升序排列。必須原地修改,只允許使用額外常數(shù)空間。 題目地址:https://leetcode-cn.com/probl... 題目描述:實(shí)現(xiàn)獲取下一個(gè)排列的函數(shù),算法需要將給定數(shù)字序列重新排列成字典序中下一個(gè)更大的排列。 如果不存在下一個(gè)更大的排列,則將數(shù)字重新排列成最小的排列(即升序排列)。 必須原地修改,只允許使用額外常數(shù)空...

    forrest23 評(píng)論0 收藏0
  • leetcode31 Next Permutation

    摘要:如果當(dāng)前數(shù)字代表的整數(shù)值已經(jīng)是所有排列組合中的最大值,則返回當(dāng)前數(shù)字組成的最小值??墒沁@意味著大量無(wú)用的數(shù)字的生成和比較。一個(gè)數(shù)字中的各個(gè)位上的數(shù)如何調(diào)整順序才能獲得一個(gè)最小的更大值。其次,要保證移動(dòng)之后,高位以后的值為最小值。 題目要求 Implement next permutation, which rearranges numbers into the lexicographi...

    hedzr 評(píng)論0 收藏0
  • 6-9月技術(shù)文章匯總

    摘要:分布式的管理和當(dāng)我在談?wù)摷軜?gòu)時(shí)我在談啥狀態(tài)碼詳解無(wú)狀態(tài)協(xié)議和請(qǐng)求支持哪些方法分層協(xié)議棧有哪些數(shù)據(jù)結(jié)構(gòu)運(yùn)用場(chǎng)景說(shuō)說(shuō)你常用的命令為什么要有包裝類(lèi)面向?qū)ο蟮奶卣魇巧妒巧队惺裁春锰幭到y(tǒng)設(shè)計(jì)工程在線(xiàn)診斷系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)索引背后的數(shù)據(jù)結(jié)構(gòu)及算法原理軟技能 HTTP 【HTTP】分布式session的管理 【HTTP】Cookie和Session 【HTTP】當(dāng)我在談?wù)揜estFul架構(gòu)時(shí)我在談啥?...

    miya 評(píng)論0 收藏0
  • LeetCode - 007 - 整數(shù)反轉(zhuǎn)(reverse-integer)

    摘要:詳細(xì)介紹將其他值轉(zhuǎn)成數(shù)字值。此方法更改數(shù)組的長(zhǎng)度。詳細(xì)介紹解題思路首先,將傳入的數(shù)字轉(zhuǎn)換成字符串,并分割成數(shù)組。本許可協(xié)議授權(quán)之外的使用權(quán)限可以從處獲得。 Create by jsliang on 2019-05-19 09:42:39 Recently revised in 2019-05-19 16:08:24 Hello 小伙伴們,如果覺(jué)得本文還不錯(cuò),記得給個(gè) star , 小伙伴們...

    venmos 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<