剑指offer
我是小聪
这个作者很懒,什么都没留下…
展开
-
剑指offer_9
剑指offer_9(每日5题)来源:牛客网1. 和为S的连续正数序列题目:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列...原创 2019-08-13 14:31:32 · 70 阅读 · 0 评论 -
剑指offer_12
剑指offer_12(每日5题)来源:牛客网1. 删除链表中重复的结点题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5分析:非递归的代码:首先添加一个头节点,以方便碰到第一个,第二个节点就相同的情况,然后设置 ...原创 2019-08-16 14:12:07 · 138 阅读 · 0 评论 -
剑指offer_8
剑指offer_8(每日5题)来源:牛客网1. 两个链表的第一个公共结点题目:输入两个链表,找出它们的第一个公共结点。分析:找出2个链表的长度,然后让长的先走两个链表的长度差,然后再一起走(因为2个链表用公共的尾部)参考代码:/*public class ListNode { int val; ListNode next = null; ListNode...原创 2019-08-12 14:32:12 · 86 阅读 · 0 评论 -
剑指offer_11
剑指offer_11(每日5题)来源:牛客网1. 构建乘积数组题目:给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。分析:B[i]的值可以看作下图的矩阵中每行的乘积。下三角用连乘可以很容求得,上三角,从下向上也是连乘。因此我们的思路就很清晰了,先算下三角中...原创 2019-08-15 14:28:45 · 139 阅读 · 0 评论 -
剑指offer_7
剑指offer_7(每日5题)来源:牛客网1. 整数中1出现的次数(从1到n整数中1出现的次数)题目:求出113的整数中1出现的次数,并算出1001300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n ...原创 2019-08-11 14:55:03 · 133 阅读 · 0 评论 -
剑指offer_6
剑指offer_6(每日5题)1. 连续子数组的最大和题目:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个...原创 2019-08-10 14:49:41 · 87 阅读 · 0 评论 -
剑指offer_10
剑指offer_9(每日5题)来源:牛客网1. 孩子们的游戏(圆圈中最后剩下的数)题目:每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并...原创 2019-08-14 12:37:37 · 97 阅读 · 0 评论 -
剑指offer_5
剑指offer_5(每日5题)1. 栈的压入、弹出序列题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)分析:借用一个辅助的栈,遍历...原创 2019-08-09 11:08:22 · 90 阅读 · 0 评论 -
剑指offer_4
剑指offer_4(每日5题)1. 合并两个排序的链表题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。参考代码:/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val;...原创 2019-08-09 09:52:49 · 68 阅读 · 0 评论 -
剑指offer_3
剑指offer_3(每日5题)1. 二进制中1的个数题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。分析:如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。举个例子:一个二进制数1100,从右边数起第三位是处于最右...原创 2019-08-09 09:51:27 · 102 阅读 · 0 评论 -
剑指offer_2
剑指offer_2(每日5题)1. 旋转数组的最小数字题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。分析:采用二分法解答这个问题,mid = low +...原创 2019-08-09 09:50:29 · 114 阅读 · 0 评论 -
剑指offer_1
剑指offer_1(每日5题)1. 二维数组中的查找题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。分析:从左下角元素往上查找,右边元素是比这个元素大,上边是的元素比这个元素小。于是,target比这个元素小就往上找,比这个元素大就往右找。...原创 2019-08-09 09:43:47 · 84 阅读 · 0 评论 -
剑指offer_13
剑指offer_13(最后6题)来源:牛客网1. 序列化二叉树题目:请实现两个函数,分别用来序列化和反序列化二叉树二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#),以 ! 表示一个结点值的结...原创 2019-08-17 16:58:51 · 117 阅读 · 0 评论