164. 最大間距

給定一個(gè)無(wú)序的數(shù)組萄涯,找出數(shù)組在排序之后,相鄰元素之間最大的差值唆鸡。

如果數(shù)組元素個(gè)數(shù)小于 2涝影,則返回 0。

示例 1:

輸入: [3,6,9,1]
輸出: 3
解釋: 排序后的數(shù)組是 [1,3,6,9], 其中相鄰元素 (3,6) 和 (6,9) 之間都存在最大差值 3喇闸。
示例 2:

輸入: [10]
輸出: 0
解釋: 數(shù)組元素個(gè)數(shù)小于 2,因此返回 0询件。

說(shuō)明:

你可以假設(shè)數(shù)組中所有元素都是非負(fù)整數(shù)燃乍,且數(shù)值在 32 位有符號(hào)整數(shù)范圍內(nèi)。
請(qǐng)嘗試在線性時(shí)間復(fù)雜度和空間復(fù)雜度的條件下解決此問(wèn)題宛琅。

思路:

將數(shù)組分塊刻蟹,塊內(nèi)的必然不是所要的解,所以只需取最大和最小值嘿辟,比較相鄰塊最小值和最大值的差值舆瘪,取最大的,具體實(shí)現(xiàn)如下红伦。

class Solution {
public:
    int maximumGap(vector<int>& nums) {
        if(nums.size()<2) return 0;
        int minv=INT_MAX;
        int maxv=INT_MIN;
        for(int i=0;i<nums.size();i++)
        {
            minv=min(minv,nums[i]);
            maxv=max(maxv,nums[i]);
        }
        
        int bucket_size=(maxv-minv)/nums.size()+1;
        vector<vector<int>> buckets((maxv-minv)/bucket_size+1);
       
        for(int i=0;i<nums.size();i++)
        {
            int idx=(nums[i]-minv)/bucket_size;
            if(buckets[idx].empty())
            {
                buckets[idx].push_back(nums[i]);
                buckets[idx].push_back(nums[i]);
            }
            else
            {
                buckets[idx][0]=min(buckets[idx][0],nums[i]);
                buckets[idx][1]=max(buckets[idx][1],nums[i]);
            }
        }
        
        int maxgap=0;
        int pre=0;
        for(int i=1;i<buckets.size();i++)
        {
            if(!buckets[i].empty())
            {
                maxgap=max(maxgap,buckets[i][0]-buckets[pre][1]);
                pre=i;                
            }

        }
        
        return maxgap;
    }
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末英古,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子昙读,更是在濱河造成了極大的恐慌召调,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛮浑,死亡現(xiàn)場(chǎng)離奇詭異唠叛,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)沮稚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門艺沼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人蕴掏,你說(shuō)我怎么就攤上這事障般〉骶ǎ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵剩拢,是天一觀的道長(zhǎng)线得。 經(jīng)常有香客問(wèn)我,道長(zhǎng)徐伐,這世上最難降的妖魔是什么贯钩? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮办素,結(jié)果婚禮上角雷,老公的妹妹穿的比我還像新娘。我一直安慰自己性穿,他們只是感情好勺三,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著需曾,像睡著了一般吗坚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上呆万,一...
    開(kāi)封第一講書(shū)人閱讀 49,792評(píng)論 1 290
  • 那天商源,我揣著相機(jī)與錄音,去河邊找鬼谋减。 笑死牡彻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的出爹。 我是一名探鬼主播庄吼,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼严就!你這毒婦竟也來(lái)了总寻?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤梢为,失蹤者是張志新(化名)和其女友劉穎废菱,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體抖誉,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡殊轴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了袒炉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旁理。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖我磁,靈堂內(nèi)的尸體忽然破棺而出孽文,到底是詐尸還是另有隱情驻襟,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布芋哭,位于F島的核電站沉衣,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏减牺。R本人自食惡果不足惜豌习,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拔疚。 院中可真熱鬧肥隆,春花似錦、人聲如沸稚失。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)句各。三九已至吸占,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凿宾,已是汗流浹背矾屯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留菌湃,地道東北人问拘。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓遍略,卻偏偏與公主長(zhǎng)得像惧所,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绪杏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 在我的博客冒泡排序下愈、插入排序、快速排序蕾久、堆排序势似、歸并排序總結(jié)中介紹了幾種經(jīng)典的排序方法,其中快速排序僧著、堆排序和歸并...
    小怪獸大作戰(zhàn)閱讀 2,099評(píng)論 1 6
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案履因? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,737評(píng)論 1 92
  • HTML 5 HTML5概述 因特網(wǎng)上的信息是以網(wǎng)頁(yè)的形式展示給用戶的,因此網(wǎng)頁(yè)是網(wǎng)絡(luò)信息傳遞的載體盹愚。網(wǎng)頁(yè)文件是用...
    阿啊阿吖丁閱讀 3,866評(píng)論 0 0
  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說(shuō)明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí)栅迄,會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 5,253評(píng)論 0 9
  • 1. 找出數(shù)組中重復(fù)的數(shù)字 題目:在一個(gè)長(zhǎng)度為n的數(shù)組里的所有數(shù)字都在0到n-1的范圍內(nèi)皆怕。數(shù)組中某些數(shù)字是重復(fù)的毅舆,...
    BookThief閱讀 1,748評(píng)論 0 2