摘要:實現獲取下一個排列的函數,算法需要將給定數字序列重新排列成字典序中下一個更大的排列。如果不存在下一個更大的排列,則將數字重新排列成最小的排列即升序排列。
實現獲取下一個排列的函數,算法需要將給定數字序列重新排列成字典序中下一個更大的排列。
如果不存在下一個更大的排列,則將數字重新排列成最小的排列(即升序排列)。
必須原地修改,只允許使用額外常數空間。
以下是一些例子,輸入位于左側列,其相應輸出位于右側列。
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; } };
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/101766.html
摘要:我們所找到的這個元素就是排序需要改變的第一個元素。然后我們選取一個剛好大于此元素的數,與當前元素進行替換。并對后面的所有元素重新按照升序排列就可以得到最終的答案。 題目詳情 Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of...
摘要:如果不存在下一個更大的排列,則將數字重新排列成最小的排列即升序排列。必須原地修改,只允許使用額外常數空間。 題目地址:https://leetcode-cn.com/probl... 題目描述:實現獲取下一個排列的函數,算法需要將給定數字序列重新排列成字典序中下一個更大的排列。 如果不存在下一個更大的排列,則將數字重新排列成最小的排列(即升序排列)。 必須原地修改,只允許使用額外常數空...
摘要:如果當前數字代表的整數值已經是所有排列組合中的最大值,則返回當前數字組成的最小值。可是這意味著大量無用的數字的生成和比較。一個數字中的各個位上的數如何調整順序才能獲得一個最小的更大值。其次,要保證移動之后,高位以后的值為最小值。 題目要求 Implement next permutation, which rearranges numbers into the lexicographi...
摘要:分布式的管理和當我在談論架構時我在談啥狀態碼詳解無狀態協議和請求支持哪些方法分層協議棧有哪些數據結構運用場景說說你常用的命令為什么要有包裝類面向對象的特征是啥是啥有什么好處系統設計工程在線診斷系統設計與實現索引背后的數據結構及算法原理軟技能 HTTP 【HTTP】分布式session的管理 【HTTP】Cookie和Session 【HTTP】當我在談論RestFul架構時我在談啥?...
摘要:詳細介紹將其他值轉成數字值。此方法更改數組的長度。詳細介紹解題思路首先,將傳入的數字轉換成字符串,并分割成數組。本許可協議授權之外的使用權限可以從處獲得。 Create by jsliang on 2019-05-19 09:42:39 Recently revised in 2019-05-19 16:08:24 Hello 小伙伴們,如果覺得本文還不錯,記得給個 star , 小伙伴們...
閱讀 2449·2021-10-08 10:17
閱讀 1824·2021-09-06 15:02
閱讀 2539·2019-08-29 17:30
閱讀 2663·2019-08-29 13:24
閱讀 1522·2019-08-29 11:12
閱讀 3337·2019-08-28 17:52
閱讀 666·2019-08-26 11:30
閱讀 3577·2019-08-26 11:01