1.牛牛找工作
問題描述:n種工作 每個工作有乙個難度指數d,和乙個報酬p
m個人,每個人有乙個能力指數a。
幫助這m個人找到報酬最大的工作。
思考:採用合適的資料結構來儲存和處理題目給的資料,於是採用stl中的map,因為map在處理這種一一對應的兩個值時有優勢,如果想要使用vector那就必須自己定義乙個結構體。
思路:用map將這些d和p儲存起來之後,我們要對資料進行處理這樣才能對任意乙個能力a快速的找到所對應的最大薪酬,處理方式是將 任意乙個難度指數 對應的儲存 最大的薪酬。
**如下:
#includeusing namespace std;
int main()
int temp = 0;
auto iter = amap.begin();
for(;iter != amap.end();iter++)
for(int i = 0; i < m; i++)
}
其中第乙個迴圈將資料讀入map,第二個迴圈將對資料進行處理,第三個迴圈對每個人進行尋找。upper_bound函式是採用二分查詢的方式查詢第乙個大於引數的位置 返回當前位置的 迭代器。
其實本題我不怎麼想用map,因為在第乙個迴圈中我用了乙個三元操作符,它的功能是如果難度指數相同的情況只保留薪酬大的數值,我對map操作不熟練,我覺得既然出現key值相同的情況我就不想用map咯,不然還要搞事情。
所以我用大家最喜歡的vector再寫了一遍。
思路相同**如下:
#includeusing namespace std;
struct offer
};int main()
sort(arry.begin(),arry.end());
int temp = 0;
auto iter = arry.begin();
for(;iter != arry.end();iter++)
for(int i = 0; i < m; i++)
}
這裡定義了乙個結構體offer(希望能找到工作qaq)然後過載了 < 這樣後面的sort函式 upper_bound函式 才能正常使用。
所有**都經過測試,請放心食用。
2023年網易實習生筆試題集合之安置路燈
問題描述 只包含.x 的乙個佇列,其中.表示需要被照亮的地方,乙個路燈可以照亮三個位置,照亮這個佇列中所有的.該如何放置路燈使得路燈的數量最少。思考 這種題的關鍵就在於該如何放置路燈,而且要明確這種題就是簡單題不要想別的。很明顯,我們處理該問題一定因該是遍歷這個數列,遇到.的時候當然要放置路燈咯,因...
2023年網易實習生筆試題集合之矩形重疊
問題描述 求有多少個矩形重疊。思考 這道題講道理很難,難在你需要思考怎麼去表示矩形重疊。我一開始的想法是將這些矩形按照左下角的x值的大小排序,然後依次拿來矩形做比較,然後開始寫 發現寫不出來。換條路 這裡我參考咯大佬的想法 思考假如把矩形重疊換成線段重疊該怎麼處理 發現線段重疊的特點是必然包含線段的...
2023年網易實習生筆試題集合之被3整除
問題描述 有乙個神奇的數列,計算這個數列有多少個數能被3整除。思考 這種問題蠻有意思的,因為它考驗的其實就是從不同的角度看問題的能力,但說實話在有限的時間內能get到這個點的除了智商高就是向你們這樣肯刷題的咯 反正當時我沒過t t 言歸正傳,任何乙個數對3求餘數不外乎3個數,0,1,2。顯然這道題是...