LeetCode 1122. 數組的相對排序 Relative Sort Array

【題目描述】
給你兩個數組褒墨,arr1 和 arr2聊训,

arr2 中的元素各不相同
arr2 中的每個元素都出現在 arr1 中
對 arr1 中的元素進行排序绪钥,使 arr1 中項的相對順序和 arr2 中的相對順序相同歌溉。未在 arr2 中出現過的元素需要按照升序放在 arr1 的末尾忱详。

【示例】

輸入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]
輸出:[2,2,2,1,4,3,3,9,6,7,19]

【提示】

1、arr1.length, arr2.length <= 1000
2匾浪、0 <= arr1[i], arr2[i] <= 1000
3皇帮、arr2 中的元素 arr2[i] 各不相同
4、arr2 中的每個元素 arr2[i] 都出現在 arr1 中

思路:
1蛋辈、首先題目的意思是按照arr2的元素順序返回arr1的元素属拾,假定返回的新數組為arr3将谊,然后把剩余的arr1元素按照升序順序拼接到arr3后邊返回
2、遍歷一遍arr1使用map [Int:Int] 記錄每一個元素的次數
3渐白、遍歷arr2尊浓,把在arr2出現的元素當做key取出value值,arr3 add value次key值
4纯衍、把剩余的字典鍵值對所對應的key值排序栋齿,添加到arr3后邊
5、時間復雜度 O(nlogn)
6襟诸、空間復雜度 O(n)

代碼實現:

func relativeSortArray(_ arr1: [Int], _ arr2: [Int]) -> [Int] {
    var result = [Int]()
    var tmp = [Int:Int]()
    for n in arr1 {
        var value = tmp[n] ?? 0
        value+=1
        tmp[n] = value
    }
    var tmp1 = tmp
    for num in arr2 {
        for _ in 0..<tmp[num]! {
            result.append(num)
        }
        tmp1.removeValue(forKey: num)
    }
    var tmpArr = [Int]()
    for (key,value) in tmp1 {
        for _ in 0..<value {
            tmpArr.append(key)
        }
    }
    result.append(contentsOf: tmpArr.sorted())
    return result
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末瓦堵,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子励堡,更是在濱河造成了極大的恐慌谷丸,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件应结,死亡現場離奇詭異刨疼,居然都是意外死亡,警方通過查閱死者的電腦和手機鹅龄,發(fā)現死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門揩慕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扮休,你說我怎么就攤上這事迎卤。” “怎么了玷坠?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵蜗搔,是天一觀的道長。 經常有香客問我八堡,道長樟凄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任兄渺,我火速辦了婚禮缝龄,結果婚禮上,老公的妹妹穿的比我還像新娘挂谍。我一直安慰自己叔壤,他們只是感情好,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布口叙。 她就那樣靜靜地躺著炼绘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪妄田。 梳的紋絲不亂的頭發(fā)上俺亮,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天仗哨,我揣著相機與錄音,去河邊找鬼铅辞。 笑死,一個胖子當著我的面吹牛萨醒,可吹牛的內容都是我干的斟珊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼富纸,長吁一口氣:“原來是場噩夢啊……” “哼囤踩!你這毒婦竟也來了?” 一聲冷哼從身側響起晓褪,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤堵漱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后涣仿,有當地人在樹林里發(fā)現了一具尸體勤庐,經...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年好港,在試婚紗的時候發(fā)現自己被綠了愉镰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡钧汹,死狀恐怖丈探,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情拔莱,我是刑警寧澤碗降,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站塘秦,受9級特大地震影響讼渊,放射性物質發(fā)生泄漏。R本人自食惡果不足惜嗤形,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一精偿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赋兵,春花似錦笔咽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至历造,卻和暖如春甩十,著一層夾襖步出監(jiān)牢的瞬間船庇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工侣监, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鸭轮,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓橄霉,卻偏偏與公主長得像窃爷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子姓蜂,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355