Time of Update: 2018-12-05
題目 : 一個台階有n個台階。每次可以上一個台階,也可以上兩個台階。有多少種不同的上法?可以這麼遞迴的來考慮,第一次跳一個台階,這種情況的跳法總數是後面的跳法總數f(n-1);第一次跳兩個台階,這種情況下跳法總數是後面的跳法總數f(n-2);所以全部的跳法數就是f(n)=f(n-1)+f(n-2),n>2f(1)=1,n=1f(2)=2;n=2這正是Fibonacci數列,可以很快寫出它的遞迴函式long long Fibonacci(unsigned int n){if (n==1){
Time of Update: 2018-12-05
這個題目有一個前提條件,大檔案的中的資料有有一個特點,那就是不存在重複的資料。就算是重複的資料,也只讓你求出去除重複之後的那些資料的排序結果。 如果題目變成了這樣,我們就可以考慮建立一個大的數組。數組的下表表示一個整數,數組的內容在我遍曆檔案的時候再賦值。如果數組下標代表的那個整數存在,我們就把數組的這個元素賦值為1,否則賦值為0.這樣我們就可以再次遍曆數組,把元素的值為1的那些下標輸出到另一個檔案,這樣另一個檔案中就存放了排好序的資料了。
Time of Update: 2018-12-05
這兩種排序方法都是先將一個無序的大的外部檔案,分成若干塊,分別讀到記憶體中。將每一塊都先排好序,放到一個新的外部檔案中。二路歸併的思路是每次將外部排序的檔案兩兩合并,變成一個二倍大小的檔案,然後對二倍大小的檔案繼續兩兩合并。直到最終合并為一個檔案為止。k路歸併是將外部排好序的子檔案一次合并。先在各個檔案中取出第一個資料,放到一個優先順序隊列中。然後選出最小的資料輸出到外部結果檔案裡。並從最小資料對應的檔案中讀取下一個資料。這種方法的關鍵在於,要將每次從檔案中讀到的資料和對應的檔案關聯起來。這樣才
Time of Update: 2018-12-05
最近筆試經常遇到這個p+1的問題,,還是《C++
Time of Update: 2018-12-05
條款20:為指標的關聯容器指定比較函數假定你有一個string*指標的set,你把一些動物的名字插入進set:set<string*> ssp;// ssp = “set of string ptrs”ssp.insert(new string("Anteater"));ssp.insert(new string("Wombat"));ssp.insert(new string("Lemur"));ssp.insert(new
Time of Update: 2018-12-05
pbinary_tree_node copy_binary_tree(pbinary_tree_node bt){//先序遍曆輸出一顆樹的全部結點值1,2,3stack<pbinary_tree_node> stack_left,stack_right;pbinary_tree_node newbt;if (bt!=NULL){//new rootnewbt=new binary_tree_node;newbt->data=bt->data;//travel bt
Time of Update: 2018-12-05
如果函數沒有傳回值,則函數內部的變數在函數執行結束之後全部釋放;如果函數有傳回值,則函數內臨時變數在函數所在的指派陳述式執行完畢之後釋放. #include <iostream>#include <string>using namespace std;class Base{public: Base():selfid(++n) { cout<<"Base "<<selfid<<" by default"<<endl; }
Time of Update: 2018-12-05
文章目錄 條款21: 永遠讓比較函數對相等的值返回false 條款21: 永遠讓比較函數對相等的值返回false讓我向你展示一些比較酷的東西。建立一個set,比較類型用less_equal,然後插入一個10:set<int, less_equal<int> > s; // s以“<=”排序s.insert(10); //
Time of Update: 2018-12-05
現在用stl的人越來越多, stl確實是套很漂亮的演算法和資料結構庫. 但是初用stl的人往往會遇上很多問題.從一個容器中刪除元素,是很常用的操作,但是也是初學者常會犯錯誤的地方,上次baosong就發現了刪除map和list中元素會犯的錯誤. vector是stl裡很常用的一個容器, 和map,list等容器相比, 從vector中刪符合某些條件的元素有更多的麻煩.比如,我們要完成如下的任務.有下面的結構體class AA{public: AA():n(0){} AA(int b):n(b)
Time of Update: 2018-12-05
類最好不要擁有fstream 成員: 因為檔案對象的開啟關閉等操作隨運行時的各種環境變化而易出現不容易覺察的操作失敗。此時為測試帶來了困難。 所以檔案流對象最好隨用隨取。例如如下一個對象的函數成員的函數體就比較可取,其中fstream對象outFile不是類的成員 fstream outFile; outFile.open(fName, ios::binary | ios::app ); if(outFile.fail()) { cout<<"can't
Time of Update: 2018-12-05
禪這種動物大部分的時間呆在地下的洞穴中生活,它們靠汲取樹根的營養存活。當它們從地下爬到樹枝上之後,公禪急切的想和一隻母禪交配,它們靠聽母禪拍打翅膀發出的滴答生來找到母禪終於它找到了,急切的爬了過去,心想:我等了你十七年,現在辦事兒的時間終於到了 ( After seventeen years, The time is come to get down do
Time of Update: 2018-12-05
最近公積金需要複議,花費了不少經曆,由於之前沒有做過,所以擔心怕材料不齊。通過這次的經曆,總結了一下公積金複議要準備的材料,希望能對大家有所協助。公積金申請複議需要到上海房屋置業擔保中心去申請。浦東新區的在中信五牛城需要的材料如下:1. 個人戶口本,結婚證原件和複印件。 複印件是要上交的,原件不用2. 買房和開發商簽訂的預售合約,這個需要複印件。我買的是一手房,如果是二手房的話,應該需要二手房買賣合約。3. 個人社保明細,去社保中心列印即可4.
Time of Update: 2018-12-05
本文中使用的工具為WPS的文字Word,而不是Microsoft
Time of Update: 2018-12-05
fstream& Personal::writeToFile(fstream& out) { out.write(SSN,SSNLen); out.write(name,nameLen); out.write(city,cityLen); out.write((char*)(&year),sizeof(year)); out.write((char*)(&salary),sizeof(salary)); return out;}fstream&
Time of Update: 2018-12-05
秀秀是我高中很要好的朋友,同在一個班裡度過了高三的辛苦時光。她學習努力,成績很棒,後來考上了北京的名校,現在在離我不遠的大學裡讀研究生,同時在一家500強公司裡做實習生。秀秀所在的公司是全球IT領域首屈一指的老大哥公司,但是她在裡面做人力資源部實習生,而她的專業好像是什麼行政管理還是什麼管理來著,反正跟人力或者IT都不搭邊。我問她以後想做什麼,秀秀說想去某奢侈品公司做業務,因為聽說那邊實習生待遇是一天500大元兒,要是能當正式員工,肯定錢多的數不過來。我問她那為什麼在這裡做實習生,一個跟未來和現
Time of Update: 2018-12-05
今天寫一個小例子時遇到了一個如下的問題:我要遍曆一個vector,但遍曆過程中某些條件具備的時候我就打算刪除複合條件的元素。刪除時使用erase永久刪除,然後繼續完成遍曆(這個情況在Effective C++上面看到過,但沒找到,還記得有解決辦法的,所以就自己想辦法了)。比如現在我打算在遍曆遇到2的時候直接刪除2,刪除後的數組還可以當做它用。int b[]={1,2,3,4,5};vector<int> a(b,b+5);for
Time of Update: 2018-12-05
公司的筆試題目是我出的,裡面有一道簡單的字串拷貝函數,還有一個題目是實現string的建構函式,拷貝建構函式,以及賦值建構函式。 面試的人數應該達到2位元了,但是做出來令我滿意的只有一個。大部分人對指標操作都一塌糊塗。 不說那些批評的話了,希望廣大的應屆畢業生注意打好c語言的基礎。希望有志於從事c/c++開發的人把基礎打好。
Time of Update: 2018-12-05
這裡希望能更清楚,如果不好,歡迎拍磚。12345的next是12354,從這裡我們可以看出,next就是將大數字提到小數位前面,即對調一個升序的兩個數字。 而對於更一般的情況,對如下排列234578 改變任意個升序的數字對都可以得到後續的排列。哪一個才是next呢?
Time of Update: 2018-12-05
list::splice實現list拼接的功能。將源list的內容部分或全部元素刪除,拼插入到目的list。函數有以下三種聲明:void splice ( iterator position, list<T,Allocator>& x ); // void splice ( iterator position, list<T,Allocator>& x, iterator i );void splice ( iterator position,
Time of Update: 2018-12-05
Map是一種關聯容器,用來儲存key-value資料。其中的key是用來尋找的關鍵字,value是實際存放的值。一個特定的關鍵字只能與一個唯一的值相聯絡。map是由一對一對的索引值(key/value)所組成的排序結構體,索引值是讀一無二的(unique)的。 map通常是以平衡二叉尋找樹來實現的,因此map對插入,刪除,尋找能保證log(N)的時間複雜度。對於海量的資料的插入和查詢,map是一個不錯的選擇。 本文將對map的常見操作進行講解。不當之處,歡迎批評指正(bicheng.gu