classCQueue{public:
stack<int> stk1, stk2;CQueue(){while(stk1.size()) stk1.pop();while(stk2.size()) stk2.pop();}voidappendTail(int value){
stk1.push(value);}intdeleteHead(){if(stk2.size()==0){while(stk1.size()){
stk2.push(stk1.top());
stk1.pop();}}if(stk2.size()==0)return-1;int t = stk2.top();
stk2.pop();return t;}};/**
* Your CQueue object will be instantiated and called as such:
* CQueue* obj = new CQueue();
* obj->appendTail(value);
* int param_2 = obj->deleteHead();
*/
剑指 Offer 10- I. 斐波那契数列
classSolution{public:intfib(int n){int a =0, b =1;int mod =1e9+7;if(!n)return0;for(int i =2; i <= n; i ++){int c =(a + b)% mod;
a = b;
b = c;}return b;}};
剑指 Offer 03. 数组中重复的数字
classSolution{public:intfindRepeatNumber(vector<int>& nums){
unordered_set<int> S;for(auto& t : nums){if(S.count(t))return t;
S.insert(t);}return0;}};
剑指 Offer 04. 二维数组中的查找
classSolution{public:boolfindNumberIn2DArray(vector<vector<int>>& matrix,int target){if(matrix.size()==0)returnfalse;int i =0, j = matrix[0].size()-1;while(i < matrix.size()&& j >=0){if(matrix[i][j]== target)returntrue;elseif(matrix[i][j]> target) j --;else i ++;}returnfalse;}};