剑指Offet
半梦半醒间幸运_
这个作者很懒,什么都没留下…
展开
-
剑指Offer:变态跳台阶C++实现
//可以从前面的任何一层跳到当前层//因此是前n-1层跳法的总和………………………………int jumpFloor(int n){ vector<int> step(n+1,0); step[0]=step[1]=1; for(int i=2;i<=n;i++) { for(int j=0;j<i;j++) { step[i]+=step[j]; } } return step.back();}...原创 2020-08-17 15:30:33 · 143 阅读 · 0 评论 -
剑指offer:二维数组的查找
#include<iostream>#include<vector>using namespace std;bool searchValue(vector<vector<int>>& matrix,int target){ if(matrix.empty()) return false; int row=matrix.size()-1; int col=matrix[0].size()-1; int h=0; while(h&l.原创 2020-08-03 14:26:13 · 100 阅读 · 0 评论 -
剑指Offer 队列的最大值
定义一个队列并实现函数max_value得到队列里的最大值。要求max_value,push_back,pop_front的时间均摊复杂度为O(1)。若队列为空,pop_front和max_value需要返回-1。分析:用一个queue和deque实现。queue负责pop和push,deque负责存放最大值。如果新的value的值大于deque尾端的值,那么deque一直进行pop_...原创 2020-03-08 14:53:31 · 86 阅读 · 0 评论 -
剑指Offer_青蛙跳台阶问题
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶,求该青蛙上一个n级台阶总共有多少种跳法。答案需要取模1e9+7,如计算结果为:1000000008,请返回1。分析:青蛙跳上第n阶台阶的方法有两种:①通过第n-1阶跳1下到达第n阶;②通过第n-2阶跳2下到达第n阶;那么跳到第n阶的方法为第n-1阶和第n-2阶跳法之和。如斐波那契数列一样,用数组存储前n-1个台阶的跳法,注意在第0阶有1种...原创 2020-03-05 15:24:15 · 132 阅读 · 0 评论 -
剑指Offer_斐波那契数列
写一个函数,输入n,求斐波那契数列的第n项。F(0)=0,F(1)=1F(N)=F(N-1)+F(N-2),其中N>1。斐波那契数列由0,1开始,之后的斐波那契数就是由前两项相加而得。输出要求:输出答案需要取模1e9+7(1000000007),如计算初始结果为1000000008,请返回1。分析:采用递归法,时间复杂度无法通过要求。因此用数组存储每一项的结果,第n项时,只需将n...原创 2020-03-05 14:49:00 · 77 阅读 · 0 评论 -
C++实现从尾到头打印链表(剑指Offer)
struct ListNode{ int val; ListNode* next; ListNode(int x):val(x),next(nullptr){}};class Solution{public: vector<int> printListArray(TreeNode* head) { vector<int> printList; while(head) { printList.push_back(head->val);原创 2020-08-16 15:47:44 · 136 阅读 · 0 评论