剑指offer
AKUNNN
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指offer:数组中出现次数超过一半的数字
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 原先自己写的方法,这种方法在for循环中还有for循环,算法复杂度为O(n2)O(n2)O(n^2),并不是一种好的方法: class Solution { public: ...原创 2018-09-04 20:25:15 · 115 阅读 · 0 评论 -
剑指offer:连续子数组的最大和
HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你...原创 2018-09-04 21:12:32 · 115 阅读 · 0 评论 -
剑指offer:丑数
1.题目描述: 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 2.解题思路: 由丑数的定义可以推断,所有的丑数都是由比它小的其他丑数乘以2,3,5得到的,第一个丑数为1,1乘以2,3,5可以得到第二个丑数为2,再由2推得之后的其他丑数。对于之前乘以...原创 2018-09-07 21:27:29 · 138 阅读 · 0 评论 -
剑指offer:旋转数组的最小数字
1.题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 2.解题思路: 先只考虑典型的旋转数组,一个非减数组经过旋转之后,可以看成两个非减数组,如:...原创 2018-09-09 15:09:07 · 135 阅读 · 0 评论 -
剑指offer:数字在排序数组中出现的次数
1.题目描述: 统计一个数字在排序数组中出现的次数。 2.解题思路: 在一个已经排好序的数组中找一个数最先想到的应该是使用二分法查找,由于需要找的数是重复出现多次的,此时的二分查找需要一些技巧。注意到给出的数据类型是vector型,要找的数是k,可以通过查找k-0.5来确定比k-0.5大一点且最接近k-0.5的位置(此时如果k存在于数组中,该位置就是第一个k值得位置),再通过查找k+0....原创 2018-09-09 21:11:40 · 145 阅读 · 0 评论 -
剑指offer:数组中只出现一次的数字
1.题目描述: 一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。 2.思路分析: 这种类型的题属于技巧题,考察了异或运算的性质。一个数与自己按位异或得到0,一个数与0异或得到它本身,同时异或运算满足交换律与结合律(异或运算的性质)。因此,当数组中只有一个数字出现奇数次,其他数字出现偶数次时,把该数组中的数从左到右依次做异或运算,可以得到那个为...原创 2018-09-07 16:25:29 · 128 阅读 · 0 评论 -
剑指offer:二维数组中的查找
1.题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 2.思路分析: 将搜索的起点放在数组的左下角,当target大于数组中起点的数时,将数组最左边的一列删除,这一列都比target小,同理当target小于数组中起点的数时,将数...原创 2018-09-07 17:08:37 · 120 阅读 · 0 评论 -
剑指offer:数组中重复的数字
1.题目描述: 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 2.解题思路: 因为数组中所有的数字都在0到n-1之间,如果该数组是排序数组的话,那么在i位置对应的n...原创 2018-09-07 18:35:31 · 298 阅读 · 0 评论
分享