2_20相鄰兩數(shù)最大差值

有一個整形數(shù)組A,請設計一個復雜度為O(n)的算法而姐,算出排序后相鄰兩數(shù)的最大差值腊凶。

給定一個int數(shù)組A和A的大小n,請返回最大的差值。保證數(shù)組元素多于1個吭狡。

測試樣例:
輸入:[1,2,5,4,6],5
返回:2

class Gap {
public:
    int maxGap(vector<int> A, int n) {
        // write code here
        int max = A[0], min = A[0];
        int max_idx = 0, min_idx = 0;
        for(int i=1; i<n; i++){
            if(A[i] > max){
                max = A[i];  max_idx = i;
            }else if (A[i] < min){
                min = A[i];  min_idx = i;
            }
        }
        float step = (max - min) / (float)n;
        vector< list<int> > bucket(n+1);
        bucket[0].push_back(A[min_idx]);
        bucket[n].push_back(A[max_idx]);
        
        // 遍歷數(shù)組尖殃,將元素放入桶內(nèi)
        for(int i=0; i<n; i++){
            if(i==min_idx || i==max_idx){
                continue;
            }else{
            bucket[floor((A[i] - min)/step)].push_back(A[i]);
            }
        }

        // 遍歷每個桶內(nèi)的list,找出該桶內(nèi)的最大值與與下一桶內(nèi)最小值
        int max_gap = 0;
        int l_max = 0;
        int r_min = 0, r_max = 0;
        for(int i=0; i<n+1; ++i){
            if(!bucket[i].empty()){
                r_max = bucket[i].front();
                r_min = bucket[i].front();
                list<int>::iterator j = bucket[i].begin(); 
                for(; j!=bucket[i].end(); ++j){
                    if(*j > r_max){
                        r_max = *j;
                    }else if(*j < r_min){
                        r_min = *j;
                    }
                }
                if(i>0){
                    max_gap = r_min - l_max > max_gap ? r_min - l_max : max_gap;
//                    if(r_min - l_max > max_gap){
//                        max_gap = r_min - l_max;
//                    }
                }
                l_max = r_max;
            }
        }
        return max_gap;
    }
};
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末划煮,一起剝皮案震驚了整個濱河市送丰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌弛秋,老刑警劉巖器躏,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蟹略,居然都是意外死亡登失,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門挖炬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來揽浙,“玉大人,你說我怎么就攤上這事意敛∠谙铮” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵草姻,是天一觀的道長钓猬。 經(jīng)常有香客問我,道長撩独,這世上最難降的妖魔是什么敞曹? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮综膀,結果婚禮上澳迫,老公的妹妹穿的比我還像新娘。我一直安慰自己僧须,他們只是感情好纲刀,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著担平,像睡著了一般示绊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上暂论,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天面褐,我揣著相機與錄音,去河邊找鬼取胎。 笑死展哭,一個胖子當著我的面吹牛湃窍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播匪傍,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼您市,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了役衡?” 一聲冷哼從身側響起茵休,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎手蝎,沒想到半個月后榕莺,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡棵介,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年钉鸯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片邮辽。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡唠雕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出逆巍,到底是詐尸還是另有隱情及塘,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布锐极,位于F島的核電站,受9級特大地震影響芳肌,放射性物質(zhì)發(fā)生泄漏灵再。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一亿笤、第九天 我趴在偏房一處隱蔽的房頂上張望翎迁。 院中可真熱鬧,春花似錦净薛、人聲如沸汪榔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽痴腌。三九已至,卻和暖如春燃领,著一層夾襖步出監(jiān)牢的瞬間士聪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工猛蔽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留剥悟,地道東北人灵寺。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像区岗,于是被迫代替她去往敵國和親略板。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354

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

  • 該文章總結自牛課網(wǎng)的在線算法課程(https://www.nowcoder.com/) 經(jīng)典排序算法就是前面講那幾...
    鍋與盆閱讀 7,705評論 6 14
  • 題目 有一個整形數(shù)組A慈缔,請設計一個復雜度為O(n)的算法叮称,算出排序后相鄰兩數(shù)的最大差值。給定一個int數(shù)組A和A的...
    IT_Matters閱讀 1,346評論 2 1
  • 計算機二級C語言上機題庫(南開版) 1.m個人的成績存放在score數(shù)組中胀糜,請編寫函數(shù)fun,它的功能是:將低于平...
    MrSunbeam閱讀 6,366評論 1 42
  • 1颅拦、用C語言實現(xiàn)一個revert函數(shù),它的功能是將輸入的字符串在原串上倒序后返回教藻。 2距帅、用C語言實現(xiàn)函數(shù)void ...
    希崽家的小哲閱讀 6,270評論 0 12
  • 例如淘寶,京東之類的點擊購買之后括堤,就會出現(xiàn)一個PopupWindow的窗口從下面彈出來碌秸,以便顧客更好的體驗和方便顧...
    c5dc1c310212閱讀 741評論 0 2