如何用更優(yōu)的方式獲取一個數(shù)組中最大的前兩位數(shù)

這是一道好未來的iOS面試題囱修。
今年三月份我面試了好未來的iOS開發(fā),當(dāng)時期望薪資是28K王悍,第一技術(shù)面過了破镰,第二技術(shù)面,主要是在路由和組件化這塊講的不明白压储,結(jié)果掛了鲜漩,有點小遺憾〖铮回想起來第一技術(shù)面有一個算法題孕似,我當(dāng)時雖然寫出來了,但面試官說有更好的方式實現(xiàn)刮刑。只是當(dāng)時我沒想起來喉祭,過后查了一下,果然有更好的方式實現(xiàn)雷绢,今天我來分享一下泛烙。

題目是這樣,有一個數(shù)組翘紊,請你找出這個數(shù)組最大的前兩位數(shù)蔽氨,且最大的數(shù)比第二大的數(shù)大9,如果沒有就提示不存在這樣的數(shù)帆疟。

當(dāng)時我想孵滞,這個很簡單嘛,不就是對數(shù)組進行降序排序鸯匹,然后取出數(shù)組第一和第二個數(shù)坊饶,最后比較大小,根據(jù)判斷輸出嗎殴蓬,于是我這樣寫了:

-(void)sortWithArray:(NSMultableArray *)arr{
for(int i = 0;i<arr.count;i++){
for(int j = i + 1; j <arr.count;j++){
if(arr[j] > arr[i]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
// 這里得到了一個降序數(shù)組
if(arr[0] - arr[1] > 10){
nslog(%ld,%ld,arr[0],arr[1]);
}else{
nlog("沒有這樣兩個數(shù)");
}
}

問題是:面試官說匿级,有更好的方式來實現(xiàn)蟋滴,譬如用一次循環(huán)實現(xiàn)。后來我回家后痘绎,思考了一會津函,怎么用一次循環(huán)來實現(xiàn)呢?想來想去還是沒想到孤页,于是我查了相關(guān)資料尔苦,真的佩服這種方式,果然一個循環(huán)就實現(xiàn)了行施,如下面代碼所示:

-(void)sortWithArray:(NSMultableArray *)arr{
//首先取出數(shù)組頭兩位數(shù)允坚,默認這個數(shù)組最少兩個元素
int max = arr[0]; int min = arr[1];
if(max < min){
max = arr[1];
min = arr[0];
}
for(int i = 2; i < arr.count ;i++){
if(arr[i] > max){
//把之前最大的置為第二大
min = max;
//重新設(shè)置最大數(shù)
max = arr[i];
}else{
//判斷之前第二大數(shù)跟當(dāng)前便利數(shù)對比
if(arr[i] > min){
min = arr[i];
}
}

    //便利結(jié)束,最后所得的兩個數(shù)就是數(shù)組中最大的兩個數(shù)
    if(max - min > 9){
          nslog(@"最大兩個數(shù)分別為:%@蛾号,%@"稠项,max,min);
      }else{
          nslog(@"沒有這樣的數(shù)");
      }
  }

}

好了涂身,這就是如何使用一次便利的方式得到數(shù)組最大的兩個方式秃踩。

總結(jié):技術(shù)的學(xué)習(xí)遇汞,技能的提高是長期積累的過程誊酌,要想拿到高薪offer,持續(xù)積累拒啰,好好總結(jié)歧匈,月薪30k不是夢檀训,希望大家多多分享怒允,多多提建議埂软,謝謝。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末误算,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子迷殿,更是在濱河造成了極大的恐慌儿礼,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件庆寺,死亡現(xiàn)場離奇詭異蚊夫,居然都是意外死亡,警方通過查閱死者的電腦和手機懦尝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門知纷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人陵霉,你說我怎么就攤上這事琅轧。” “怎么了踊挠?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵乍桂,是天一觀的道長冲杀。 經(jīng)常有香客問我,道長睹酌,這世上最難降的妖魔是什么权谁? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮憋沿,結(jié)果婚禮上旺芽,老公的妹妹穿的比我還像新娘。我一直安慰自己辐啄,他們只是感情好采章,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著则披,像睡著了一般共缕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上士复,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天图谷,我揣著相機與錄音,去河邊找鬼阱洪。 笑死便贵,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的冗荸。 我是一名探鬼主播承璃,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蚌本!你這毒婦竟也來了盔粹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤程癌,失蹤者是張志新(化名)和其女友劉穎舷嗡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嵌莉,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡进萄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了锐峭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片中鼠。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖沿癞,靈堂內(nèi)的尸體忽然破棺而出援雇,到底是詐尸還是另有隱情,我是刑警寧澤椎扬,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布熊杨,位于F島的核電站曙旭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏晶府。R本人自食惡果不足惜桂躏,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望川陆。 院中可真熱鬧剂习,春花似錦、人聲如沸较沪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尸曼。三九已至们何,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間控轿,已是汗流浹背冤竹。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留茬射,地道東北人鹦蠕。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像在抛,于是被迫代替她去往敵國和親钟病。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

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