- 博客(13)
- 收藏
- 关注
原创 剑指offer二叉树的下一个结点(中序遍历)
题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路首先可以分为两大类:1、有右子树的,那么下个结点就是右子树最左边的点;2、没有右子树的,此时又可以分为两类:2.1 该结点是父结点的左孩子,那么父结点就是下一个结点 ;2.2 该结点是父结点的右孩子,此时应寻找他父结点的父结点的父结点…直到...
2019-08-31 21:29:49 92
原创 剑指offer链表中的入口结点
题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。思路step1找环中相汇点。分别用p1,p2指向链表头部,p1每次走一步,p2每次走二步,直到p1==p2找到在环中的相汇点。step2找环的入口。接第一步,当p1等于p2时,p2所经过节点数为2x,p1所经过节点数为x,设环中有n个节点,p2比p1多走一圈有2x=n+x;n=x;可以看出p1实际走了一个...
2019-08-31 20:06:57 60
原创 圆圈中最后剩下的数(约瑟夫问题)
题目描述每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…直到剩下最后一...
2019-08-29 18:19:28 86
原创 剑指offer数组中出现次数超过一半的数字
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路:采用阵地攻守的思想:第一个数字作为第一个士兵,守阵地;count = 1;遇到相同元素,count++;遇到不相同元素,即为敌人,同归于尽,count–;当遇到co...
2019-08-16 17:05:59 57
原创 剑指offer二叉搜索树的后序遍历序列
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路1.二叉搜索树的特性是左子树所有节点的值均小于根节点的值,右子树所有节点的值均大于根节点的值。2后序遍历是先遍历左子树再遍历右子树,所以根节点一定在数组最后一位上。3.给出的数组中,前面部分的值应小于数组最后一个值,后面部分的值应大于数组最...
2019-08-16 09:47:47 57
原创 vue路由设置:父路切换子路由active样式不会消失
vue小白今天在写导航栏的过程中出现了一个问题,记录一下解决办法。问题:当前路由下(父路由)点击它的子路由时,它(父路由)的选中状态消失了。通过两个小时的查找资料,终于通过阅读这篇博客link.解决了问题,感谢!原因:1、子路由router-link加了exac精确匹配路由2、在写路由的时候,父子路由没有严格按照一级/二级来写相关知识点:router-link 作为 vue 中...
2019-08-14 14:09:38 1586
原创 剑指offer二进制中1的个数
问题描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。代码:function NumberOf1(n){ var count = 0,flag=1; while(flag){ if(n&flag)count++; flag=flag<<1; } return count; }...
2019-08-13 13:34:10 56
原创 剑指offer旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。自己写的代码如下:function minNumberInRotateArray(rotateArray)...
2019-08-13 13:02:09 56
原创 剑指offer变态跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:分析如下:假设f(n) 代表n个台阶的跳法数。当n = 1时,只有1种跳法,f(1) = 1当n = 2时,会有两个跳台阶方式,一次1阶或者2阶当n = 3时,会有三种跳台阶方式,1阶、2阶、3阶那么就是第一次跳出1阶后面剩下:f(3-1);第一次跳出2阶,剩...
2019-08-13 11:49:02 78
原创 vue学习
vuex使用方法一、vuex用法:1.定义store.js文件;2.引用Vue.use(Vuex)组件;3.定义state和mutations,state是我们要去管理的或组件要公用的状态,mutations是我们要定义改变状态的一些方法;二、在组件中怎么使用vuex:1.首先要引入store文件,import store from ‘@/store’ ;2.然后在default...
2019-08-12 13:07:58 70
原创 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。(js实现)
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:由于队列是先进先出的,而栈是先进后出的,所以要用2个栈来实现队列的入队出队功能。队列的入队功能与栈的一样。出队时,先将栈1中的元素全部弹出,并放入栈2中,将栈2的栈顶元素弹出,然后将栈中剩下的元素倒回到栈1中,即实现一次出队操作。JavaScript代码var stack1=[],stack2=...
2019-08-10 18:09:46 197
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人