剑指offer
ITAK
这个作者很懒,什么都没留下…
展开
-
【剑指offer】旋转数组的最小数字(二分)
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解题思路首先观察这个数组有什么特点,它是由有序数组旋转而来的,如果有旋转的话,那么就存在一个下标 i(i&a...原创 2018-11-18 21:17:25 · 202 阅读 · 0 评论 -
数组中出现超过一半的数(复杂度O(n))
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。解题思路对于这个题,复杂度为 O(n∗logn)O(n*logn)O(n∗logn) 的当然很简单了,将数组排序,取中间那个数,然后判断一下就行了。那么显然我们可以继续优化,要...原创 2018-11-19 21:34:50 · 630 阅读 · 0 评论