
LeetCode
elsawei
这个作者很懒,什么都没留下…
展开
-
快速排序---寻找无序数组中的第k大的数
思路是利用快速排序:因为快速排序的分治思想可以将查询的范围缩小快速排序的思想:low为数组的起始点,high为数组的尾部点。交替扫描1.固定数组的第一个数为定点,从数组的尾部high开始往左查找,直到第一个比定点小的数,和定点交换,因此当前点为空(high)2.从数组的起始处,low找到第一个比定点大的数,赋值给High的位置3.最后一层循环过后,low的位置是空缺的,补充...原创 2020-05-01 22:55:08 · 489 阅读 · 0 评论 -
重建二叉树
脑子去哪儿第三篇。。。原始思路:先序遍历的第一个节点是根节点,去扫描在中序当中根的位置(很急很关键),找到以后,发现对于中序序列根的左边为左子树,根的右边为右子树。 这是我们的大致判定思路,然而现实还有很多坎坷等着你,别急慢慢来。 vector&preorder, vector inorder 于是想着找到根在Inorde原创 2017-08-28 21:55:23 · 197 阅读 · 0 评论 -
旋转数组的最小数字
旋转数组的最小数字。原始思路:二分查找,如果mid大于最后的数字,说明小数在mid,high的区间里面。如果mid小于等于最后的数字,说明小数在low,mid的区间里面。 哗哗哗写好,leetcode已经ac class Solution {public: int findMin(vector& nums) {原创 2017-08-29 16:47:43 · 208 阅读 · 0 评论