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

資訊專欄INFORMATION COLUMN

?每日肥學(xué)?——算法&面試題3??

biaoxiaoduan / 874人閱讀

導(dǎo)讀

小伙伴們新的學(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集合有哪幾種方式?各自效率怎么樣?

方式:

entrySetkey+valuekeyvalue

效率:

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

相關(guān)文章

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

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

    henry14 評論0 收藏0

發(fā)表評論

0條評論

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