課堂練習之《找水王》

2022-05-11 12:54:14 字數 670 閱讀 3799

實驗題目:

實現思路:

起初的思想則是把所有的id進行排序,找到中間的那個id一定就是水王(前提是水王樹木超過了一半,而且水王存在),但是這樣就要遍歷兩次,時間複雜度就大了。後來根據課上的提示,id在陣列中,然後呼叫乙個迴圈開始遍歷,相鄰兩兩進行比較,如果不相同則消掉,在陣列中的編號也隨之一起改變,指導遍歷完畢,就能夠找到水王了。

**實現:

1 #include 2

using

namespace

std;34

intmain()5;

8int shuiw=id[0]; //

預設水王為第乙個id

9int count=1;10

for(int i=1;i<30;i++)

1121}22

if(count) //

當count為0時候,沒有水王。

23 cout <

水王id:

"24else

25 cout <

沒有水王

"<

26return0;

27 }

執行截圖:

課堂練習 找水王

一 題目及題目要求 二 設計思路 1 把帖子列表,抽象為乙個一維陣列arr num 輸入長度length為id總數,每個陣列元素為乙個id。2 再設定乙個迴圈,按照順序來依次兩兩比較,如果作者id相同則保留,如果作者id不同則消除。3 最後剩下id即為水王id 三 源程式 includeusing ...

課堂練習 找「水王」

一 題目要求 現有乙個灌水論壇,資訊學院的學生都喜歡在上面交流灌水。傳說在論壇上有乙個 水王 它不但喜歡發帖,還會回覆其他id發的每個帖子。坊間風聞該 水王 發帖數目已超過了帖子數目的一半。二 設計思路 本題要求時間複雜度是o n 我們可以設定乙個計數器flag,和乙個變數shuiwang存放當前的...

課堂練習 找水王

題目 設計思想 最簡單的思路就是 統計每乙個id出現的次數,然後找出出現最多的id就是水王。第二種更優的思路就是 利用水王發帖次數大於一半,然後兩兩一消,從第乙個數開始,如果等於它的下一位,number 1,如果不等於,number 1,不等於相當於把這兩個帖子都刪除,直接從這兩個的後乙個開始。最後...