// 程式設計之美 尋找發帖水王.cpp : 定義控制台應用程式的入口點。
//有乙個水王發帖超過一半 給你發帖所有的id 找到他
//統計每個id出現次數 找到最大的(超過一半)
#include "stdafx.h"
#include #include #include using namespace std;
class id
;id::id()
void input(vector&v, int n)
}string find(const vector&v, id id, const int n)
}else //到字串是空的了(到頭了)
break;
}} }
candidate = id[0];
for (i = 0; i < n; i++) }
//每個id和他的次數
for (i = 0; i < n; i++) }
return candidate.id;
}string find(const vector&v, const int n) //書中方法 函式衝在
else
else
}cout << candidate << endl;
} cout int n;//列表中的id個數
cout << "please input id's number" << endl;
cin >> n;
input(v, n);
id *id = new id[n];
//find(v, id, n);
cout << "書中方法"<< endl;
find(v,n);
deleteid;
id = null;
system("pause");
return 0;
}
程式設計之美 尋找發帖「水王」
描述 直接拍照,懶得打字 此題很容易轉換為,在乙個陣列中,有乙個數出現的次數超過了陣列元素個數的一半,請找出這個元素。方法一 對陣列排序進行排序,利用通常的排序方法,複雜度o nlgn 再遍歷一遍陣列,找出那個元素,複雜度為o n 空間複雜度o 1 方法二 空間換時間吧,在開闢乙個陣列,hash對映...
程式設計之美 尋找發帖「水王」
基礎問題 找出發帖數超過帖子總數一半的id.拓展問題 有三人發帖數都超過了帖子總數目n 的1 4 找出他們的 id.我們可以先排序然後找出中間的那個id 但可以考慮避免排序來改進時間複雜度。每次從列表刪除兩個不相同的id 剩餘的相同 id就是找到的 水王 type find type id,int ...
程式設計之美 尋找發帖水王
tango是微軟亞洲研究院的乙個試驗專案。研究院的員工和實習生們都很喜歡在 tango 上面交流灌水。傳說,tango 有一大水王,他不但喜歡發帖,還會回覆其他 idid 也在表中,你能快速找出這個傳說中的 tango 水王嗎?分析 如果乙個id 出現的次數超過總數 n的一半,那麼先把這些 id排好...