推薦朋友 LintCode

2021-09-07 19:33:58 字數 1376 閱讀 2909

描述

給n個人的朋友名單,告訴你user,請找出user最可能認識的人。(他和user有最多的共同好友且他不是user的朋友)

n <= 500。

好友關係是相互的。(b若出現在a的好友名單中,a一定出現在b的好友名單中)

每個人的好友關係不超過 m 條,m <= 3000。

如果有兩個人和user的共同好友數目一樣,編號更小的那個認為是最可能認識的人。

如果user和所有陌生人都沒有共同好友,輸出-1。

樣例給出 list = [[1,2,3],[0,4],[0,4],[0,4],[1,2,3]], user = 0, 返回 4。

解釋:0和4不是朋友,並且他們有3個共同好友。所以4是0最可能認識的人。

給出 list = [[1,2,3,5],[0,4,5],[0,4,5],[0,5],[1,2],[0,1,2,3]], user = 0, 返回 4。

解釋:雖然5和0有3個共同好友,4和0只有2個共同好友,但是5是0的好友,所以4是0最可能認識的人。

5 0

1 2 3

0 40 4

0 41 2 3

#if 1

#include#include#include#include using namespace std;

int recommendfriends(vector> &friends, int user)

//找到不是user好友的人

for (int i = 0; i < num; ++i)

//根據user的好友名單更新res

for (auto c : friends[user])

}int max = 0;

int person = -1;

//找到有最多共同好友的人

for (auto c : res)

}return person;

}int main()

// vec.push_back(temp);

//}while (getline(cin, str)) //其實可都可以不知道行數

vec.push_back(temp);

}cout << recommendfriends(vec, id) << endl;

return 0;

}int test()

vector> vec;

for (int i = 0; i < in[0]; i++)

if (temp.size()!=0)

}cout << recommendfriends(vec, in[1]) << endl;

return 0;

}#endif

推薦朋友 LintCode

描述 給n個人的朋友名單,告訴你user,請找出user最可能認識的人。他和user有最多的共同好友且他不是user的朋友 n 500。好友關係是相互的。b若出現在a的好友名單中,a一定出現在b的好友名單中 每個人的好友關係不超過 m 條,m 3000。如果有兩個人和user的共同好友數目一樣,編號...

LintCode 1690 朋友推薦(二分插入)

某交友 會給除了第乙個使用者以外的每個新註冊的使用者推薦一位之前已經註冊過並且性格值和他最相近的使用者,如果有多人滿足條件則選擇性格值較小的。給定陣列val表示按時間順序註冊的 n 位使用者的性格值,輸出乙個大小為 n 1 的陣列,表示系統給這些人推薦的使用者的性格值。樣例 1 輸入 val 8 9...

近期給朋友推薦的筆記本型號

256 ssd 4 8g 千兆有線網絡卡 無線支援2g,5g 802.11ac 1 首先肯定是ssd固態硬碟,win7以上至少需要256g的ssd了。當然裝小電影肯定不夠了 2 記憶體考慮上,一般8g夠用了,考慮預算4g也行,不過網頁就不能開太多了。3 這個我強烈建議,在當今的網路時代,有線網絡卡還...