上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 60 下一页
摘要: 最小的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)
摘要: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 分析: 1.前序遍历的第一个为根结点,在中序遍历中找到根结点的 阅读全文
posted @ 2019-09-22 17:18 西*风 阅读(155) 评论(0) 推荐(0)
摘要: 剑指offer-旋转数组的最小数字(二分) 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2, 阅读全文
posted @ 2019-09-22 17:09 西*风 阅读(133) 评论(0) 推荐(0)
摘要: 输入一个链表,输出该链表中倒数第k个结点。分析:定义两个结点p1和p2都指向头节点,p1先走k-1步,然后p1和p2一起走,当p1走到链表尾部时,p2指向的结点就是倒数第k个结点遍历一遍链表即可,时间复杂度O(N)ListNode* FindKthToTail(ListNode* pListHead, unsigned int k){ if(pListHead==NULL||k==0) ... 阅读全文
posted @ 2019-09-22 15:31 西*风 阅读(142) 评论(0) 推荐(0)
摘要: 题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。class Solution {public:int NumberOf1(int x){ int c=0; while(x!=0) { c++; x=x&(x-1);//把x最右边的1变成0 } return c;}};分析:如果一个整数不为0,那么这个整数至少有一个位是1,如果我们... 阅读全文
posted @ 2019-09-22 15:04 西*风 阅读(143) 评论(0) 推荐(0)
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 60 下一页