- 博客(13)
- 收藏
- 关注
原创 剑指offer二叉树的下一个结点(中序遍历)
题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路 首先可以分为两大类: 1、有右子树的,那么下个结点就是右子树最左边的点; 2、没有右子树的,此时又可以分为两类: 2.1 该结点是父结点的左孩子,那么父结点就是下一个结点 ; 2.2 该结点是父结点的右孩子,此时应寻找他父结点的父结点的父结点…直到...
2019-08-31 21:29:49
173
原创 剑指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
132
原创 圆圈中最后剩下的数(约瑟夫问题)
题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…直到剩下最后一...
2019-08-29 18:19:28
163
原创 剑指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
110
原创 剑指offer二叉搜索树的后序遍历序列
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 思路 1.二叉搜索树的特性是左子树所有节点的值均小于根节点的值,右子树所有节点的值均大于根节点的值。 2后序遍历是先遍历左子树再遍历右子树,所以根节点一定在数组最后一位上。 3.给出的数组中,前面部分的值应小于数组最后一个值,后面部分的值应大于数组最...
2019-08-16 09:47:47
116
原创 vue路由设置:父路切换子路由active样式不会消失
vue小白今天在写导航栏的过程中出现了一个问题,记录一下解决办法。 问题: 当前路由下(父路由)点击它的子路由时,它(父路由)的选中状态消失了。 通过两个小时的查找资料,终于通过阅读这篇博客 link. 解决了问题,感谢! 原因: 1、子路由router-link加了exac精确匹配路由 2、在写路由的时候,父子路由没有严格按照一级/二级来写 相关知识点: router-link 作为 vue 中...
2019-08-14 14:09:38
1876
原创 剑指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
113
原创 剑指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
127
原创 剑指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
141
原创 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
165
原创 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。(js实现)
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路: 由于队列是先进先出的,而栈是先进后出的,所以要用2个栈来实现队列的入队出队功能。 队列的入队功能与栈的一样。 出队时,先将栈1中的元素全部弹出,并放入栈2中,将栈2的栈顶元素弹出,然后将栈中剩下的元素倒回到栈1中,即实现一次出队操作。 JavaScript代码 var stack1=[],stack2=...
2019-08-10 18:09:46
309
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅