題目描述
陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列**現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。
思路:
看到這個題目,我腦子裡第乙個蹦出來的思路是用樹來解決,因為這個題目是要記錄鍵對應的值,記錄完了過後再去查詢鍵對應的值。而現成的樹就是stl裡基於紅黑樹構建的map容器了。map容器插入,查詢,刪除的時間複雜度都是o(logn),很適合該題,**如下:
class solution
for (auto iter : m)
return 0;
}};
這裡補充一下map的操作:
(1)map的建立與插入
mapm;
m["a"]=1;
m["b"]=2;
(2)map遍歷操作操作
for(auto iter:m)
{ cout<<"map的鍵 "<(3)map的查詢操作
要查詢某個鍵對應的值是多少,find()函式,搜尋到了的話返回迭代器的位置,搜尋不到返回end()位置
map::iterator it;
it=m.find("a");
coutmap::iterator it;
it=m.find("a");
m.erase(it);
或者m.erase("a");
或者m.erase(m.begin());//刪除第乙個值
(5)map裡的數是按照鍵的大小排列好的 《劍指offer》第二十八題(對稱的二叉樹)
面試題28 對稱的二叉樹 題目 請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和 它的映象一樣,那麼它是對稱的。include include binarytree.h bool issymmetrical binarytreenode proot1,binarytreenode p...
第二十八天
1 建立乙個名稱為itcast的資料庫。create database itcast 2 設計資料表tb student的字段結構,欄位有id 學號 name 姓名 age 年齡 enrolmentdate 入學時間 並選擇適合的資料型別。tb student資料表的字段結構如下表所示 欄位名 型別...
蛻變,第二十八天
1 什麼是包 包是模組的一種形式,包的本質就是乙個含有 init py檔案的資料夾 2.為什麼要有包 因為如果我們要把我們寫的一大堆功能分類處理,並且數量眾多,我們需要進行分檔案儲存,則需要用到包的概念 3 如何用包 匯入包就是在包下的 init py import from import 注意的問...