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