国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

?每日肥學?——算法&面試題3??

biaoxiaoduan / 863人閱讀

導讀

小伙伴們新的學期又要開始了,您是否已經做好了沖刺的準備了呢?如果您想在這個學期收獲的比別人更多我建議給肥肥點個關注。我們一起來增長知識,無論你是考研還是找工作或者是要加薪。這里都是一個不錯的選擇。讓我們紅塵作伴,一起肥學!!!

?算法題

實現獲取 下一個排列 的函數,算法需要將給定數字序列重新排列成字典序中下一個更大的排列(即,組合出下一個更大的整數)。

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

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

示例 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集合有哪幾種方式?各自效率怎么樣?

方式:

entrySetkey+valuekeyvalue

效率:

1)map的key采用簡單形式和復雜形式時,查找的效率是不同的,簡單的key值效率更高2)當數據量大的時候,采用entrySet遍歷key+value的效率要高于keySet3)當我們只需要取得value值時,采用value來遍歷效率更高

特別介紹

?小白練手專欄,適合剛入手的新人歡迎訂閱編程小白進階

?python有趣練手項目里面包括了像《機器人尬聊》《惡搞程序》這樣的有趣文章,可以讓你快樂學python練手項目專欄

?另外想學JavaWeb進廠的同學可以看看這個專欄:傳送們

?這是個面試和考研的算法練習我們一起加油上岸之路

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/119313.html

相關文章

  • LeetCode刷83-簡單-刪除有序鏈表的重復項

    文章目錄 ?? 前言 ??? 作者簡介 ?? 一、題目描述 ?? 二、題目解析 ?? 三、代碼 ??? 1??. python ???? 2??. C# ?? ? 結語 ? ?? 前言 ?? 算法作為極其重要的一點,是大學生畢業找工作的核心競爭力,所以為了不落后與人,開始刷力扣算法題! ? 作者簡介 ? 大家好,我是布小禪,一個盡力讓無情的代碼變得生動有趣的IT小白,很高興能偶認識你,關注我...

    henry14 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<