LintCode 1690. 朋友推荐(二分插入)
生活随笔
收集整理的這篇文章主要介紹了
LintCode 1690. 朋友推荐(二分插入)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 題目
某交友網(wǎng)站會給除了第一個(gè)用戶以外的每個(gè)新注冊的用戶推薦一位之前已經(jīng)注冊過并且性格值和他最相近的用戶,如果有多人滿足條件則選擇性格值較小的。
給定數(shù)組val[]表示按時(shí)間順序注冊的 n 位用戶的性格值,輸出一個(gè)大小為 n-1 的數(shù)組,表示系統(tǒng)給這些人推薦的用戶的性格值。
樣例 1: 輸入: val=[8,9,7,3,0,5,11] 輸出: [8,8,7,3,3,9] 解釋: 令 ans = [] 第 2 個(gè)數(shù)為 9,前面只有第 1 個(gè)數(shù) 8,此時(shí) ans = [8] 第 3 個(gè)數(shù)為 7,前面的數(shù)有 8, 9,與 7 性格值最小的為 8,此時(shí) ans = [8, 8] 第 4 個(gè)數(shù)為 3,前面的數(shù)有 8, 9, 7,與 3 性格值最小的為 7,此時(shí) ans = [8, 8, 7] 第 5 個(gè)數(shù)為 0,前面的數(shù)有 8, 9, 7, 3,與 0 性格值最小的為 3,此時(shí) ans = [8, 8, 7, 3] 第 6 個(gè)數(shù)為 5,前面的數(shù)有 8, 9, 7, 3, 0,與 5 性格值最小的為 3,此時(shí) ans = [8, 8, 7, 3, 3] 第 7 個(gè)數(shù)為 11,前面的數(shù)有 8, 9, 7, 3, 0, 5,與 11 性格值最小的為 9,此時(shí) ans = [8, 8, 7, 3, 3, 9]樣例 2: 輸入: val=[465, 5464, 6467, 6466779, 6461, 56] 輸出: [465,5464,6467,6467,465] 解釋: 令 ans = [] 第 2 個(gè)數(shù)為 5464,前面只有第 1 個(gè)數(shù) 465,此時(shí) ans = [465] 第 3 個(gè)數(shù)為 6467,前面的數(shù)有 465, 5464,與 6467 性格值最小的為 5464,此時(shí) ans = [465, 5464] 第 4 個(gè)數(shù)為 6466779,前面的數(shù)有 465, 5464, 6467,與 6466779 性格值最小的為 6467,此時(shí) ans = [465, 5464, 6467] 第 5 個(gè)數(shù)為 6461,前面的數(shù)有 465, 5464, 6467, 6466779,與 6461 性格值最小的為 6467,此時(shí) ans = [465, 5464, 6467, 6467] 第 6 個(gè)數(shù)為 56,前面的數(shù)有 465, 5464, 6467, 6466779, 6461,與 56 性格值最小的為 465,此時(shí) ans =[465, 5464, 6467, 6467, 465]注意事項(xiàng) 2<=n<=100000 0<=val<=1000000類似題目:LeetCode 315. 計(jì)算右側(cè)小于當(dāng)前元素的個(gè)數(shù)(二叉查找樹&二分查找&歸并排序逆序數(shù)總結(jié))
2. 解題
- 給一個(gè)空數(shù)組,依次把性格值二分插入到其中
- 檢查插入位置前后跟我 絕對值較小 的取為答案
- 變形版 二分查找請參考
100% 數(shù)據(jù)通過測試
總耗時(shí) 653 ms
您的提交打敗了 35.48% 的提交!
總結(jié)
以上是生活随笔為你收集整理的LintCode 1690. 朋友推荐(二分插入)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 决策树(Decision Tree,DT
- 下一篇: LeetCode 611. 有效三角形的