- 博客(7)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 快速排序---寻找无序数组中的第k大的数
思路是利用快速排序:因为快速排序的分治思想可以将查询的范围缩小快速排序的思想:low为数组的起始点,high为数组的尾部点。交替扫描1.固定数组的第一个数为定点,从数组的尾部high开始往左查找,直到第一个比定点小的数,和定点交换,因此当前点为空(high)2.从数组的起始处,low找到第一个比定点大的数,赋值给High的位置3.最后一层循环过后,low的位置是空缺的,补充...
2020-05-01 22:55:08 465
原创 二叉树中和为某一值的路径
依然没想出来,思绪很乱,于是偷偷瞄了剑指offer和牛客讨论区。 发现我对递归的误解很深,总觉得这个过程有点绕,和大学的时候学递归的惯性思路一模一样,总按普通思维去思考。 主要问题就是集中在变量的生存周期。 思路:按照先序模式进行遍历,然后压入栈中,如果是叶子节点,则停下来,判断和是否为指定数字。递归会自动返回上一层,访问右节点,继续判断,直到所有的路径都被扫描完毕,结
2017-09-02 22:28:50 189
原创 旋转数组的最小数字
旋转数组的最小数字。原始思路:二分查找,如果mid大于最后的数字,说明小数在mid,high的区间里面。如果mid小于等于最后的数字,说明小数在low,mid的区间里面。 哗哗哗写好,leetcode已经ac class Solution {public: int findMin(vector& nums) {
2017-08-29 16:47:43 193
原创 用两个栈实现队列
今天牛客这个oj竟然没有出幺蛾子,大概是因为没有输入输出吧。话不多说,正面刚:栈的性质是先进后出,而队列却是先进先出,所以相当于它们在出的时候是相反的。 下面再说栈的性质,栈的函数只有pop弹出,top访问栈顶元素,push压栈。 下面来看牛客给的头class S
2017-08-29 11:08:18 195 1
原创 重建二叉树
脑子去哪儿第三篇。。。原始思路:先序遍历的第一个节点是根节点,去扫描在中序当中根的位置(很急很关键),找到以后,发现对于中序序列根的左边为左子树,根的右边为右子树。 这是我们的大致判定思路,然而现实还有很多坎坷等着你,别急慢慢来。 vector&preorder, vector inorder 于是想着找到根在Inorde
2017-08-28 21:55:23 180
原创 剑指offer之二维数组的查找
晕晕乎乎的周一来上班了。 果然周一诸事不宜,撸一个剑指offer浑浑噩噩的两个小时,晕。 晕晕乎乎写的代码,遇到二维数组不知道啥是行啥是列。二维数组都排好序了,查找还是挺容易的,就是一定要注意边界,边界,界。 首先我们选择一个起点,起点很重要,因为是二维涉及到搜索方向的问题,所以我们要找一个合适的起始点。来看看四个顶点哪个合适。 1)第一个点是0,0如果我们遇到
2017-08-28 10:39:49 201
原创 rand5()生成rand7()
找工作,工作,作,任重而道远。 看到面筋里面这道题,刚开始是没有任何思路的,后来我就习惯了。 原始思路:利用rand5()扩展成一个更长的区间,然后映射到7的长度上面。 想啊想啊,终于还是看了别人的扩展长度的代码 pr7=5*(rand5()-1)+rand5(); 这个真的很急很关键。 知道映射到一个均匀的长区间以后,于是想这个区间是1-25(设生成数
2017-08-27 20:13:52 390
asp使用webchart画图多折线图x轴坐标显示问题
2017-05-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人