這道題注意題意,給出的陣列一定是存在這個主元素的,不能給乙個沒有主元素的陣列測試。
方法1:窮舉法
使用兩個for迴圈計算出每個元素出現的次數, 如果該元素出現次數大於陣列元素的二分之一立即返回該元素。
可以accept的程式如下:
1class
solution
17if(count>nums.size()/2)18
return
nums[i];19}
20return0;
21}22 };
方法2:排序法
對陣列排序,中間數肯定是主元素。想一下,一根尺,如果有大於它長度二分之一的一段東西覆蓋它,這段東西肯定會佔據尺子的中間那個點。
可以accept的程式如下:
1class
solution
12 };
方法3:關聯容器map
unordered_map是不會按照first排序的。
可以accept的程式如下:
1class
solution
14 };
方法4:抵消法
設定乙個count來計數,candidate初始化為陣列第乙個元素。遍歷陣列,當陣列中的元素與candidate相等時,就將count++;當陣列中的元素與candidate不相等時,就將count--。如果count值小於0,那麼就將candidate設定為當前的陣列元素。那麼遍歷到最後乙個元素的時候,candidate即為主元素了。
也可以理解成每次都找出一對不同的元素,從陣列中刪掉,直到陣列為空或只有一種元素。 不難證明,如果存在出現頻率超過半數的元素,那麼陣列中最後剩下的就只有該元素。
可以accept的程式如下:
1class
solution else
else20}
21}22return
candidate;23}
24 };
希捷大股東易主
9月9日,希捷宣布對現有約1250萬普通股進行二級市場大宗交易。本次交易方為valueact capital與希捷科技,交易完成後,valueact capital將持有約950萬普通股,成為希捷科技最大股東之一。基於本次交易,valueact已經獲邀成為希捷董事會觀察員。本次交易預計於九月底獲得監...
容易弄混的行內元素,塊元素,行內塊元素
在css中,有乙個屬性為 display 它可以將內聯元素,塊元素,行內塊元素互相轉化 display block 轉化為塊元素,以便於設定寬高 display inline block 轉化為行內塊狀元素 display inline 轉化為行內元素 1 行內元素 又稱為內聯元素 的代表元素 sp...
網易主觀題 答案記錄
根據要求對文字進行分類 1 分類主要是運用機器學習或著深度學習技術根據不同類別資料的定義將資料分到不同的類別中。它可以解決人工標記資料的繁瑣,也可以在資訊檢索 精確推薦等領域為社會帶來便利。2 資料獲取 資料預處理 特徵工程 資料集劃分 模型選擇 模型評估 3 模型選擇。文字分類較少使用傳統的機器學...