国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

LeetCode-031-下一個排列

2021-10-02 10:28 作者:雄獅虎豹  | 我要投稿

下一個排列

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

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

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

示例說明請見LeetCode官網(wǎng)。

來源:力扣(LeetCode) ??

鏈接:https://leetcode-cn.com/problems/next-permutation/ ??

著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

解法一:遍歷數(shù)組

首先,如果數(shù)組為空或者數(shù)組只有一個元素,直接返回;

聲明一個變量handled表示是否找到更大的排列,默認(rèn)是false,left和right分別記錄找到更大排列需要調(diào)換的數(shù)字,然后雙重循環(huán)遍歷數(shù)組判斷是否存在更大的排列,具體遍歷過程如下:

  • 從數(shù)組的最后一位開始遍歷,如果存在前面的數(shù)字比當(dāng)前數(shù)字大的,則left和right分別記錄當(dāng)前索引位,并將handled更新為true,然后遍歷下一位;

  • 遍歷過程中需要判斷如果找到一種符合條件的數(shù)字,要判斷是否比之前已得到的情況更優(yōu),如果是,更新left和right。

然后根據(jù)handled判斷,如果為false,說明沒有更大的排列,也就是不存在下一個更大排列,將數(shù)字重新排列成最小的排列,就是將順序倒排;如果為true,則需要進(jìn)行如下處理:

  • 首先,將left和right位置的數(shù)字調(diào)換位置;

  • 然后將 right+1 后面的數(shù)字倒排,這一步是為了將后面的數(shù)字排列成最小的值;

  • 然后將 left+1到right-1 之間的數(shù)字跟 right+1到nums.length-1 的數(shù)字整體調(diào)換順序,這一步也是為了將left后面的數(shù)字排列成最小的值;

  • 然后將 left+1 位置的數(shù)字移到小于它的數(shù)字之后,這一步是為了獲取最終的排列結(jié)果。

【每日寄語】 努力是人生應(yīng)有的態(tài)度,睜開眼就是新的開始。



LeetCode-031-下一個排列的評論 (共 條)

分享到微博請遵守國家法律
彰化县| 太白县| 青州市| 长海县| 普洱| 永新县| 交城县| 华阴市| 仁寿县| 隆尧县| 乡宁县| 宁都县| 四平市| 思茅市| 京山县| 丽江市| 肇州县| 高雄市| 枣庄市| 桂林市| 蒙自县| 庆阳市| 搜索| 阜城县| 遂昌县| 齐河县| 临颍县| 武义县| 泽库县| 汶上县| 赫章县| 越西县| 双峰县| 江孜县| 历史| 长海县| 北川| 彰化市| 舒城县| 景德镇市| 措美县|