c++
lmj_2529980619
这个作者很懒,什么都没留下…
展开
-
【斐波那契数列】递归与非递归算法 及时间复杂度
参考链接https://www.cnblogs.com/zlshtml/p/11267310.html非递归class Solution {public: int fib(int N) { int n1=0,n2=1,n3; for(int i=2;i<=N;i++){ n3=n1+n2; n1=n2; n2=n3; } return n3;原创 2020-08-13 10:18:00 · 1035 阅读 · 0 评论 -
【剑指offer】字符串的排列(全排列)
题目输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。代码class Solution {public: vector<string> res; vector<string> Permutation(string str) {...原创 2020-04-11 20:06:32 · 139 阅读 · 0 评论 -
【剑指offer】二叉搜索树与双向链表
二叉搜索树与双向链表输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。代码(中序遍历)递归class Solution {public: TreeNode* Convert(TreeNode* pRootOfTree) { if(!pRootOfTree) return...原创 2020-04-10 20:48:27 · 117 阅读 · 0 评论 -
【剑指offer】复杂链表的复制
复杂链表的复制输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)思路参考牛客网题解代码/*struct RandomListNode { int label; struct RandomListNode *...原创 2020-04-07 14:20:32 · 111 阅读 · 0 评论 -
【剑指offer】二叉树中和为某一值的路径
题目输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)代码class Solution {public: vector<vector<int> > result; vector<int> ...原创 2020-04-05 00:34:05 · 84 阅读 · 0 评论 -
【剑指offer】二叉搜索树的后序遍历序列
题目思路参考:我的代码class Solution {public: bool VerifySquenceOfBST(vector<int> sequence) { if(sequence.size()<1) return false; return verify(sequence,sequence.s...原创 2020-03-30 18:03:05 · 91 阅读 · 0 评论 -
【剑指offer】栈的压入、弹出序列
题目输入两个序列,一个是栈的压栈序列,一个是栈的出栈序列,假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路根据压栈序列将数字压入栈,如果遇到数字和出栈序列相同,就弹出。等所有的数字都进栈后,继续遍历出栈序列,如果栈顶和出栈...原创 2020-03-29 15:47:22 · 64 阅读 · 0 评论 -
【剑指offer】包含min函数的栈
题目定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。代码另外设置一个栈存放最小元素,从栈顶到栈底从小到大排列。class Solution {public: void push(int value) { s.pu...原创 2020-03-29 14:58:58 · 84 阅读 · 0 评论 -
【剑指offer】顺时针打印矩阵
题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路参考点击链接代码我自己写的代码,和上面差不多的思路class Solution {public: v...原创 2020-03-29 14:33:29 · 55 阅读 · 0 评论 -
【剑指offer】二叉树的镜像
题目操作给定的二叉树,将其变换为源二叉树的镜像。codeclass Solution {public: void Mirror(TreeNode *pRoot) { if(pRoot==NULL) return; TreeNode *p=pRoot->left; pRoot->left=pRoot-...原创 2020-03-27 16:56:33 · 63 阅读 · 0 评论 -
【剑指offer】树的子结构
树的子结构输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)代码递归如果结点值相同:如果这是B的根节点,递归检查r1,r2左孩子以及r1,r2右孩子,而且这两边递归都要相同才能说明B是A的子结构;如果这不是B的根节点,递归检查r1左孩子和r2,以及递归检查r1右孩子和r2,两边任意一边相同都可以说明B是A的子结构;那么fun(r1,r...原创 2020-03-27 15:56:02 · 80 阅读 · 0 评论 -
【剑指offer】反转链表
题目输入一个链表,反转链表后,输出新链表的表头。代码头插法/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ReverseList(ListNode* ...原创 2020-03-27 01:32:02 · 63 阅读 · 0 评论 -
【剑指offer】链表中倒数第k个结点
题目输入一个链表,输出该链表中倒数第k个结点。方法一先遍历链表,计算出链表的长度len后,计算出倒数第k个结点为第len-k+1个结点。class Solution {public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { ListNode *p=pListHead; ...原创 2020-03-27 01:01:19 · 65 阅读 · 0 评论 -
【剑指offer】数值的整数次方
直接使用pow()函数实现pow()函数class Solution {public: double Power(double base, int exponent) { int med; double res=1.0; if(exponent>0){ while(exponent>0){ ...原创 2020-03-26 22:44:03 · 92 阅读 · 1 评论 -
【剑指offer】矩形覆盖
题目我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2 * 1的小矩形无重叠地覆盖一个2 * n的大矩形,总共有多少种方法?比如n=3时,2*3的矩形块有3种覆盖方法:思路这道题其实和【剑指offer跳台阶】是一样的思路和代码,代码查看请点击链接【剑指offer】跳台阶。2 * n的大矩形需要n个2 * 1的小矩形填充,共有两种方式填充,一下填2块或者填1块,如上图所...原创 2020-03-19 21:40:57 · 79 阅读 · 0 评论 -
【剑指offer]变态跳台阶
题目一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路f(0)=0f(1)=1要跳上number级,可以分为两种情况:先跳1级再跳number-1级 或者 先跳number-1级再跳1级。所以:f(number)=2*f(number-1)那么:f(2)=2f(3)=4f(4)=8得出公式:numbe...原创 2020-03-19 21:18:22 · 80 阅读 · 0 评论 -
【剑指offer】跳台阶
题目一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。方法一递归f(number)=f(number-1)+f(number-2)class Solution {public: int jumpFloor(int number) { if(number==0) retur...原创 2020-03-19 20:39:44 · 76 阅读 · 0 评论 -
【剑指offer】旋转数组的最小数字
题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路二分查找我们总要找包含最小元素的那半段一般包含两端fei2代码class Solution {pu...原创 2020-03-19 19:24:12 · 65 阅读 · 0 评论 -
【剑指offer】重建二叉树
题目输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路根据前序序列pre第一个元素找每个子树的根节点root,new一个结点并赋值,再删除pre第一个元素。根据中序序列vin:root左右两边的的所有结...原创 2020-03-19 15:26:16 · 64 阅读 · 0 评论 -
【剑指offer】二叉树的下一个结点
题目给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路当前分两大类情况:有右子树:直接找到右子树的最左下角的结点无右子树:循环检查父节点的父节点,直到当前结点是父节点的左孩子,返回当前结点的父节点,否则说明当前结点是最后一个结点,返回NULL代码/*struct TreeLinkNod...原创 2020-03-14 01:38:30 · 67 阅读 · 0 评论 -
【剑指offer】把二叉树打印成多行
题目从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。代码层次遍历struct TreeNode{ int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x): val(x),left(NULL),right(NULL); }};cl...原创 2020-03-13 23:20:21 · 67 阅读 · 0 评论 -
【剑指offer】对称的二叉树
题目请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路参考:https://blog.csdn.net/weixin_40271182/article/details/84310722利用递归的思想,从根节点的左右节点开始从上到下一次判断二叉树两对称点(左结点的左子树&右结点的右子树;左结点的右子树&右结点的左...原创 2020-03-13 22:46:39 · 60 阅读 · 0 评论 -
华为机试-----24点游戏算法
题目24点游戏算法题目代码(递归实现)#include<iostream>#include<algorithm>using namespace std;bool Is24(double a[],int i,int res){ if(res==24) return true; if(i==0) return Is2...原创 2020-03-10 23:32:39 · 571 阅读 · 0 评论 -
华为机试----称砝码
题目称砝码代码#include<iostream>#include<set>#include<vector>using namespace std;int main(){ int n,i,j,num,tsum; while(cin>>n){ int weight[n]; vector<...原创 2020-03-10 15:27:46 · 206 阅读 · 0 评论 -
华为机试-----计算字符串的相似度
题目计算字符串的相似度代码#include<iostream>#include<string>using namespace std;int main(){ string s1,s2; int i,j; while(cin>>s1>>s2){ int dp[s1.size()+1][s2.size()...原创 2020-03-10 12:06:05 · 202 阅读 · 0 评论 -
华为OJ------自守数
题目链接代码#include<iostream>#include<string>using namespace std;int main(){ int n,i,num,flag,j,k,ll; string s,ss; while(cin>>n){ num=0; for(i=0;i<=n;i...原创 2020-03-10 01:00:04 · 118 阅读 · 0 评论 -
华为OJ----查找组成一个偶数最接近的两个素数
题目:https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9?tpId=37&tqId=21283&tPage=2&rp=&ru=/ta/huawei&qru=/ta/huawei/question-ranking代码#include<iostream>#inc...原创 2020-03-09 19:11:53 · 121 阅读 · 0 评论