剑指offer--Day4
Posted Recently 祝祝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer--Day4相关的知识,希望对你有一定的参考价值。
一位比我大两届的大哥(坐我的对面的侧边)看着我说:没事学习一下,顺便搞个项目出来。我真的会笑,问他怎么知道我没事干,他说没集中精神,我在看着算法题目,在分析,他说我没有集中精神,真厉害,哈哈哈。
Day4:剑指 Offer 11. 旋转数组的最小数字
其实刚开始写题的时候真的会很懵,会揪着题干不放,但是你从他给的例子去分析又是另一种想法了,多做你才能领会到其中的奥秘,其实最主要的还是要把题给解出来,而不是题目花里胡哨说了一堆,你要揪着哪一方面去实现。
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转,该数组的最小值为 1。
注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …, a[n-2]] 。
题解:双指针解法,数组升序排列,由列子:numbers = [3,4,5,1,2]可以看出,是由中间值往后往前的两个升序有序数组,前边的的数组与后边的数组升序排列,使用双指针的写法,一开始循环
以上是关于剑指offer--Day4的主要内容,如果未能解决你的问题,请参考以下文章
剑指offer(C++)-JZ53:数字在升序数组中出现的次数(算法-搜索算法)
剑指offer(C++)-JZ53:数字在升序数组中出现的次数(算法-搜索算法)