日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LintCode 1690. 朋友推荐(二分插入)

發布時間:2024/7/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LintCode 1690. 朋友推荐(二分插入) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 題目

某交友網站會給除了第一個用戶以外的每個新注冊的用戶推薦一位之前已經注冊過并且性格值和他最相近的用戶,如果有多人滿足條件則選擇性格值較小的。

給定數組val[]表示按時間順序注冊的 n 位用戶的性格值,輸出一個大小為 n-1 的數組,表示系統給這些人推薦的用戶的性格值。

樣例 1: 輸入: val=[8,9,7,3,0,5,11] 輸出: [8,8,7,3,3,9] 解釋: 令 ans = []2 個數為 9,前面只有第 1 個數 8,此時 ans = [8]3 個數為 7,前面的數有 8, 9,與 7 性格值最小的為 8,此時 ans = [8, 8]4 個數為 3,前面的數有 8, 9, 7,與 3 性格值最小的為 7,此時 ans = [8, 8, 7]5 個數為 0,前面的數有 8, 9, 7, 3,與 0 性格值最小的為 3,此時 ans = [8, 8, 7, 3]6 個數為 5,前面的數有 8, 9, 7, 3, 0,與 5 性格值最小的為 3,此時 ans = [8, 8, 7, 3, 3]7 個數為 11,前面的數有 8, 9, 7, 3, 0, 5,與 11 性格值最小的為 9,此時 ans = [8, 8, 7, 3, 3, 9]樣例 2: 輸入: val=[465, 5464, 6467, 6466779, 6461, 56] 輸出: [465,5464,6467,6467,465] 解釋: 令 ans = []2 個數為 5464,前面只有第 1 個數 465,此時 ans = [465]3 個數為 6467,前面的數有 465, 5464,與 6467 性格值最小的為 5464,此時 ans = [465, 5464]4 個數為 6466779,前面的數有 465, 5464, 6467,與 6466779 性格值最小的為 6467,此時 ans = [465, 5464, 6467]5 個數為 6461,前面的數有 465, 5464, 6467, 6466779,與 6461 性格值最小的為 6467,此時 ans = [465, 5464, 6467, 6467]6 個數為 56,前面的數有 465, 5464, 6467, 6466779, 6461,與 56 性格值最小的為 465,此時 ans =[465, 5464, 6467, 6467, 465]注意事項 2<=n<=100000 0<=val<=1000000

類似題目:LeetCode 315. 計算右側小于當前元素的個數(二叉查找樹&二分查找&歸并排序逆序數總結)

2. 解題

  • 給一個空數組,依次把性格值二分插入到其中
  • 檢查插入位置前后跟我 絕對值較小 的取為答案
  • 變形版 二分查找請參考
class Solution {int l,r,mid; public:vector<int> getAns(vector<int> &val) {if(val.size() <= 1)return {};vector<int> t;//二分插入數組t.push_back(val[0]);vector<int> ans(val.size()-1);int i, idx, k = 0, f, b;for(i = 1; i < val.size(); i++,k++){idx = bs(t,val[i]);//插入位置t.insert(t.begin()+idx+1,val[i]);//插入數組f = (idx >= 0 ? t[idx] : -10000000);//前面的性格值b = (idx+2 < t.size() ? t[idx+2] : -10000000);//后面的性格值if(abs(f-val[i]) <= abs(b-val[i]))ans[k] = t[idx];//取較小的elseans[k] = t[idx+2];}return ans;}int bs(vector<int> & a, int& target){ //二分查找,性格值小于等我的 最后一個l = 0, r = a.size()-1;while(l <= r){mid = l+((r-l)>>1);if(a[mid] > target)r = mid-1;else //(a[mid] <= target){if(mid==a.size()-1 || a[mid+1] > target)return mid;elsel = mid+1;}}return -1;} };

100% 數據通過測試
總耗時 653 ms
您的提交打敗了 35.48% 的提交!

總結

以上是生活随笔為你收集整理的LintCode 1690. 朋友推荐(二分插入)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩有码专区 | 青青草偷拍视频 | 男裸体无遮挡网站 | 日韩精品视频在线观看网站 | 麻豆成人免费视频 | 午夜影院免费体验区 | 久久久久国产精品国产 | 欧美成人综合视频 | 久久精久久 | 在线精品国产 | 日本在线视频一区二区 | 欧美久久精品一级黑人c片 1000部多毛熟女毛茸茸 | 一区二区三区不卡在线 | 国产一级片麻豆 | 狠狠人妻久久久久久综合蜜桃 | 欧美日韩一区二区在线 | 级毛片内射视频 | 国产精品免费视频观看 | 一区二区视频观看 | 天堂网av2018 | av在线免费播放网址 | 欧美美女性生活 | 中文字幕精品一二三四五六七八 | 无码一区二区三区在线 | 日韩91在线 | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 日韩免费网站 | 韩国女主播一区 | 亚洲国产精一区二区三区性色 | 天天舔天天插 | 亚洲天堂av一区二区 | 狠色综合7777夜色撩人 | 国产特级片 | 夜夜av| 亚洲在线a | 摸丰满大乳奶水www免费 | 小明成人免费视频 | 免费一级suv好看的国产网站 | 欧美性猛交xxxx乱大交退制版 | 国产区精品在线 | www.蜜桃av.com | 五月天婷婷丁香 | 国产女人18毛片水真多18 | 少妇精品亚洲一区二区成人 | 神马午夜dy888 | 日本超碰| 久久久久人妻一道无码AV | 亚洲一卡二卡三卡四卡 | av在线播放网站 | 韩国女同性做爰三级 | 99国产精品久久久久久久成人热 | 日韩国产免费 | 亚洲天堂av影院 | 摸摸大奶子 | 国产精品美女久久久久久久久 | 色图综合 | 国产一级在线观看 | 欧美做爰性生交视频 | 5566在线| 亚洲激情网站 | 午夜免费片 | 精品国产精品 | 国产一区二区三区影院 | 国产自产一区二区 | 天天碰天天操 | 欧美a网 | 久久免费久久 | 日本人妻一区二区三区 | 精品免费在线 | 成人美女在线观看 | 5个黑人躁我一个视频 | 久久亚洲美女 | 日韩夜夜高潮夜夜爽无码 | 伊人久久一区 | 粉嫩视频在线观看 | 国产精品美女毛片真酒店 | 999精品视频在线观看 | 91色吧| 成人在线免费看片 | 啪啪网页 | japanese国产 | 99re这里只有精品在线观看 | 亚洲aa在线观看 | 午夜精品剧场 | 婷婷综合在线视频 | 久久久综合 | 丰满人妻熟妇乱偷人无码 | 天天草影院 | av激情小说 | 日本精品视频一区二区 | 日日躁夜夜躁狠狠久久av | 麻豆精品国产传媒av绿帽社 | 操你啦在线视频 | 欧美一区二区在线播放 | 亚洲国产二区 | 国产乱仑视频 | 欧美天堂在线 | 国产日产欧美 | 欧美大片一区二区 |