一共3道程式設計題,第一題100分,第二題200分,第三題300,滿分600分。
q1:求斐波拉契數列
輸入形式:
3 (要測試3個月的數量)
7 (第7個月)
9 (第9個月)
11 (第11個月)
輸出形式:
13 (第7個月的數量)
34 (第9個月的數量)
89 (第11個月的數量)
要點:很多然第一反應就是用遞迴的方法,畢竟我們的教科書上反覆用這個問題來講解遞迴函式,但是並不能說明遞迴的解法最適合這道題目,簡單地說就是計算有重疊部分,嚴重影響效率!所以用遞迴解法是會提示執行時間超出限制,可以採用空間換時間的策略,本人也是之前閱讀過《劍指offer》這本書才跳出坑的。話不多說上**:
//時間複雜度o(n)
#include using namespace std;
int fibonacci(int n);
int fibnminusone = 1;
int fibnminustwo = 0;
int fibn = 0;
for(int i = 2; i <= n; ++i)
return fibn;
}int main()
q2:查詢兩個字串的最長公共子串的長度
輸入形式:
2 (表示有兩組測試資料)
abcdefg (第一組資料)
hijdef
ald345f (第二組資料)
wqw2d3590
輸出形式:
3 (第一組測試資料最長子串為def,長度為3)
2 (第二組測試資料最長子串為d3,長度為2)
方法1:動態規劃法(不是那麼容易理解)
#include #include #include using namespace std;
int lcs_len(string s1, string s2)else
if(max_len>sum;
cin.get(); //用於消除回車
vectorinstr(sum*2,"");
for(int i = 0; i#include #include using namespace std;
int maxsubstring(string str,string a)
num=0;//num重置0,這一步不能掉
} return max;
}int main()
}sum+=min_sum;
merge(a,b);
}void merge(int a,int b)//將兩堆合成一堆之後的新堆排列
for(int k = num2; k > 0; k--)
system("pause");
return 0;
}
2020暑期華為勇敢星實習總結
2020暑期華為勇敢星實習總結 2020.08.25 時光匆匆,不知不覺已經來華為實習兩個月了,實習專案工作也已接近了尾聲。回想當初剛剛來華為的時候,心情還是比較忐忑和緊張的,因為來之前就聽往屆實驗室的學長學姐們說華為的工作壓力還是比較大的。但是真正來到公司之後,才發現華為公司還是比較溫暖的,部門的...
2 11 華為招聘機試題目整理 2018
題目 1.數字處理 題目描述 給出乙個不多於5位的整數,進行反序處理,要求 1 求出它是幾位數 2 分別輸出每乙個數字 空格隔開 3 按逆序輸出各位數字 僅數字間以空格間隔,負號與數字之間不需要間隔 輸入描述 位數不大於5的整數 輸出描述 1.整數字數 2.空格間隔輸出結果 3.逆序整數 inclu...
華為海思實習生4 15機試
華為今天實習開始加了筆試,原本4.1接到筆試,因為沒有機器就沒接,現在改為4.15參加筆試,筆試分為三道題,分值分別是 100分,200分,300分。時間為2個小時,每週三的19 00 21 00。兩個小時做完兩道題的也是大佬。渣渣我一般都是一道題,但是今年華為的這題和牛客上的完全不一樣,oc好艱難...