摘要:
最小的K个数 题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 分析:要求的的最小的k个数,那么我们可以采用最大堆 先往最大堆里面存储k个数,然后剩下的数和堆顶元素比较,小于堆顶元素则替换堆顶元素,最后堆中剩下的k个 阅读全文
posted @ 2019-09-23 16:16
西*风
阅读(152)
评论(0)
推荐(0)
摘要:
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。分析:采用阵地攻守的思想先找到出现次数最多的元素,然后统计该元素的出现次数,判断是不是超过数组长度的一半阵地攻守思想:第一个数字作为第一个士兵,守阵地,c=1,遇到相同元素,c++,遇到不同... 阅读全文
posted @ 2019-09-23 15:14
西*风
阅读(398)
评论(0)
推荐(0)
摘要:
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)分析:采用栈模拟其压入顺序,当栈顶元素为当前出栈元素的话,将当前栈顶元素出栈,否则一直压入... 阅读全文
posted @ 2019-09-23 11:07
西*风
阅读(124)
评论(0)
推荐(0)
摘要:
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5分析:dfs遍历交换其左右子树即可/*... 阅读全文
posted @ 2019-09-23 10:12
西*风
阅读(131)
评论(0)
推荐(0)
摘要:
输入一个链表,反转链表后,输出新链表的表头。 分析: 方法1: 可以利用栈来做,其实递归也是一个栈,叫做递归栈 方法2: 双指针迭代法,分别指针节点的前驱和后继 func reverseList(head *ListNode) *ListNode { var p1 *ListNode p1=nil 阅读全文
posted @ 2019-09-23 10:04
西*风
阅读(130)
评论(0)
推荐(0)
摘要:
剑指offer-数值的整数次方(快速幂) 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。 示例 1: 输入:x = 2.00000, n = 10 输出:1024.00000 示例 2: 输入:x = 2.10000, n = 3 输出 阅读全文
posted @ 2019-09-23 09:46
西*风
阅读(192)
评论(0)
推荐(0)

浙公网安备 33010602011771号