小伙伴們新的學(xué)期又要開始了,您是否已經(jīng)做好了沖刺的準(zhǔn)備了呢?如果您想在這個學(xué)期收獲的比別人更多我建議給肥肥
點個關(guān)注。我們一起來增長知識,無論你是考研還是找工作或者是要加薪。這里都是一個不錯的選擇。讓我們紅塵作伴,一起肥學(xué)!!!
實現(xiàn)獲取 下一個排列 的函數(shù),算法需要將給定數(shù)字序列重新排列成字典序中下一個更大的排列(即,組合出下一個更大的整數(shù))。
如果不存在下一個更大的排列,則將數(shù)字重新排列成最小的排列(即升序排列)。
必須 原地 修改,只允許使用額外常數(shù)空間。
示例 1:輸入:nums = [1,2,3]輸出:[1,3,2]
示例 2:輸入:nums = [3,2,1]輸出:[1,2,3]
示例 3:輸入:nums = [1,1,5]輸出:[1,5,1]
示例 4:輸入:nums = [1]輸出:[1]
提示:1 <= nums.length <= 1000 <= nums[i] <= 100
我覺得這種題肯定是要用到遍歷的,關(guān)于遍歷的題我們也做過好幾道了有滑動窗口,中心擴(kuò)散法。。。你會發(fā)現(xiàn)這些方法其實都會用到雙指針。所以我們得出結(jié)論這種題我們最最最普遍的方法就是構(gòu)造雙指針,至于指針怎么移動就看你的解題技巧了。
class Solution { public void nextPermutation(int[] nums) { //倒著遍歷所以i是num的長度-2 int i = nums.length - 2; //找到比前一個比后一個小的數(shù)組下標(biāo)比如數(shù)組[2,3,9,7,6]這個循環(huán)結(jié)束時i指向3 while (i >= 0 && nums[i] >= nums[i + 1]) { i--; } if (i >= 0) { int j = nums.length - 1; //還是[2,3,9,7,6]這個例子i指向3以后找比三大的數(shù)這個時候就時6 while (j >= 0 && nums[i] >= nums[j]) { j--; } //然后交換3和6的位置 swap(nums, i, j); } //這個函數(shù)的主要作用就是將6后面的數(shù)(當(dāng)然這里沒有數(shù)我們假設(shè)有但是肯定時比6小的就假設(shè)為 //2,1兩個吧[2,3,9,7,6,2,1])2,1倒敘排列變成最小的1,2 reverse(nums, i + 1); } public void swap(int[] nums, int i, int j) { int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } public void reverse(int[] nums, int start) { int left = start, right = nums.length - 1; while (left < right) { swap(nums, left, right); left++; right--; } }}
Java遍歷Map集合有哪幾種方式?各自效率怎么樣?
方式:
entrySet
,key+value
,key
,value
效率:
1)map的key采用簡單形式和復(fù)雜形式時,查找的效率是不同的,簡單的key值效率更高2)當(dāng)數(shù)據(jù)量大的時候,采用entrySet遍歷key+value的效率要高于keySet3)當(dāng)我們只需要取得value值時,采用value來遍歷效率更高
?小白練手專欄,適合剛?cè)胧值男氯藲g迎訂閱編程小白進(jìn)階
?python有趣練手項目里面包括了像《機(jī)器人尬聊》《惡搞程序》這樣的有趣文章,可以讓你快樂學(xué)python練手項目專欄
?另外想學(xué)JavaWeb進(jìn)廠的同學(xué)可以看看這個專欄:傳送們
?這是個面試和考研的算法練習(xí)我們一起加油上岸之路
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/119313.html
文章目錄 ?? 前言 ??? 作者簡介 ?? 一、題目描述 ?? 二、題目解析 ?? 三、代碼 ??? 1??. python ???? 2??. C# ?? ? 結(jié)語 ? ?? 前言 ?? 算法作為極其重要的一點,是大學(xué)生畢業(yè)找工作的核心競爭力,所以為了不落后與人,開始刷力扣算法題! ? 作者簡介 ? 大家好,我是布小禪,一個盡力讓無情的代碼變得生動有趣的IT小白,很高興能偶認(rèn)識你,關(guān)注我...
閱讀 3491·2021-11-18 10:02
閱讀 1620·2021-10-12 10:12
閱讀 3001·2021-10-09 09:53
閱讀 4892·2021-09-09 09:34
閱讀 875·2021-09-06 15:02
閱讀 2785·2021-08-05 10:02
閱讀 3146·2019-08-30 15:44
閱讀 3129·2019-08-28 18:04