演算法百題之二十一 20網易面試題 二進位制計數

2021-10-02 16:09:25 字數 1128 閱讀 2779

很高興又能和大家見面了,接下來準備系列更新的是演算法題,一日一練,早日公升仙!

今天的問題是:

小a剛學了二進位制,他十分激動。為了確定他的確掌握了二進位制,你給他出了這樣一道題目:給定n個非負整數,將這n個數字按照二進位制下1的個數分類,二進位制下1的個數相同的數字屬於同一類。求最後一共有幾類數字?

思路:

題目很簡單,我們知道把十進位制轉換為二進位制的方法是一直對2求餘,然後逆序輸出。

所以第一步:要求1的個數只需要我們把n個數字,迴圈利用轉換為2進製的方式記錄1的個數就好。

int numofone(int num)

else

num = num / 2;

} return count;

}

第二步:這時我們需要乙個向量vectora來儲存記錄不同種類的1的個數,如果1的個數重複,就不插入這個值。新值則插入。

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

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

if(flag == 0)

vectora.push_back(numofone(array[i]));

}

第三步:因為題目要求輸入n組資料,所以我們需要用乙個向量vectorb來儲存每一組資料(vectora的大小)的結果。

vectorb.push_back(vectora.size());

// 輸出答案

for (int j = 0; j < vectorb.size(); j++)

測試用例與答案:

演算法百題之二十二 20網易面試題 水平線研發

很高興又能和大家見面了,接下來準備系列更新的是演算法題,一日一練,早日公升仙!今天的問題是 由於遠古的宇宙戰爭的原因,傘屜文明是乙個二維世界裡的文明,所以你可以這樣理解發電基站的位置與他們的鏈結關係 給你乙個一維陣列a,長度為n,表示了n個基站的位置高度資訊。陣列的第i個元素a i 表示第i個基站的...

機器學習經典演算法之(二十一) 嶺回歸

一 嶺回歸簡介 線性回歸最主要問題是對異常值敏感。在真實世界的資料收集過程中,經過會遇到錯誤的度量結果。而線性回歸使用的普通最小二乘法,其目標是使平方誤差最小化。這時,由於異常值誤差的絕對值很大,因此破壞整個模型。如何解決呢?我們引入正則化項的係數作為閾值來消除異常的影響。這個方法稱為嶺回歸。具體原...

演算法系列之二十一 最短摘要的生成

題目描述 分析與解法 這個問題比較完整正規的說明是 給定一段產品的英文描述,包含m個英文本母,每個英文單詞以空格分隔,無其他標點符號 再給定n個英文單詞關鍵字,請說明思路並程式設計實現方法 string extractsummary string description,string key wor...