当前位置: 首页 > news >正文

河北省政府网站建设现状什么网站可以免费发广告

河北省政府网站建设现状,什么网站可以免费发广告,php网站 更改logo,php做网站要多久❓剑指 Offer 11. 旋转数组的最小数字 难度:简单 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转…

❓剑指 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]]

示例 1:

输入:numbers = [3,4,5,1,2]
输出:1

示例 2:

输入:numbers = [2,2,2,0,1]
输出:0

提示

  • n == numbers.length
  • 1 <= n <= 5000
  • -5000 <= numbers[i] <= 5000
  • numbers 原来是一个升序排序的数组,并进行了 1n 次旋转

注意:本题与 154. 寻找旋转排序数组中的最小值 II 相同。

💡思路:二分查找

将旋转数组对半分可以得到一个包含最小元素的新旋转数组,以及一个非递减排序的数组。新的旋转数组的长度是原数组的一半,从而将问题规模减少了一半,这种折半性质的算法的时间复杂度为 O ( l o g 2 N ) O(log2N) O(log2N)
在这里插入图片描述
此时问题的关键在于确定对半分得到的两个数组哪一个是旋转数组,哪一个是非递减数组。我们很容易知道非递减数组的第一个元素一定小于等于最后一个元素。

通过修改二分查找算法进行求解(leftmidright 分别代表包含最小元素的新旋转数组 ):

  1. numbers[mid] > numbers[right]时, [left,mid] 区间内的数组是非递减数组[mid + 1, right] 区间内的数组为新的旋转数组,此时,left = mid + 1
  2. numbers[mid] < numbers[right]时, [mid,right] 区间内的数组是非递减数组[left, mid] 区间内的数组为新的旋转数组,此时,right = mid
  3. numbers[mid] = numbers[right]时, 无法判断哪一个是旋转数组,哪一个是非递减数组,此时 right- -,直到能判断。

🍁代码:(C++、Java)

C++

class Solution {
public:int minArray(vector<int>& numbers) {int left = 0;int right = numbers.size() - 1;if(right == 0) return numbers[0];while(left < right){int mid = left + (right - left) / 2;if(numbers[mid] > numbers[right]){left = mid + 1;}else if(numbers[mid] < numbers[right]){right = mid;}else{right--;}}return numbers[left];}
};

Java

class Solution {public int minArray(int[] numbers) {int left = 0;int right = numbers.length - 1;if(right == 0) return numbers[0];while(left < right){int mid = left + (right - left) / 2;if(numbers[mid] > numbers[right]){left = mid + 1;}else if(numbers[mid] < numbers[right]){right = mid;}else{right--;}}return numbers[left];}
}

🚀 运行结果:

在这里插入图片描述

🕔 复杂度分析:

  • 时间复杂度 O ( l o g n ) O(logn) O(logn),平均时间复杂度为 O ( l o g ⁡ n ) O(log⁡n) O(logn),其中 n 是数组 numbers 的长度。如果数组是随机生成的,那么数组中包含相同元素的概率很低,在二分查找的过程中,大部分情况都会忽略一半的区间。而在最坏情况下,如果数组中的元素完全相同,那么 while 循环就需要执行 n 次,每次忽略区间的右端点,时间复杂度为 O(n)
  • 空间复杂度 O ( 1 ) O(1) O(1)

题目来源:力扣。

放弃一件事很容易,每天能坚持一件事一定很酷,一起每日一题吧!
关注我LeetCode主页 / CSDN—力扣专栏,每日更新!

注: 如有不足,欢迎指正!

http://www.mmbaike.com/news/75838.html

相关文章:

  • html网页制作超链接青岛seo霸屏
  • 佛山做外贸网站推广可口可乐软文营销案例
  • 国内外政府网站建设经验福州关键词快速排名
  • 商贸公司网站建设极致发烧谷歌建站
  • 做地接的网站网络营销师
  • 女与男爱做电影网站免费软文代写代发
  • 呼和浩特百度seo优化设计答案五年级上册
  • 做爰全过程免费的视频网站郑州靠谱seo整站优化
  • 阿里云服务器可以做网站中国关键词网站
  • 织梦网站系统删除如何制作一个属于自己的网站
  • 网站建设需要哪些必备文件东莞网站提升排名
  • 安装vs2015网站开发企业网站制作多少钱
  • wordpress好用的文章编辑器谷歌sem和seo区别
  • 网站建设公司 电话销售没什么效果chrome官网下载
  • 网站的在线支付怎么做腾讯推广平台
  • 天津百度首页优化排名上海排名优化seobwyseo
  • 域名备案期间 网站访问上海快速优化排名
  • h5做的网站有哪些汕尾网站seo
  • 学做网站多少钱成都seo招聘信息
  • 宝鸡外贸网站建设专门代写平台
  • 网上请人做软件的网站b站推广网站2024年
  • h5网站网站建设seo关键词报价查询
  • 凡科做的网站百度收不收录衡水网站seo
  • 百度竞价关键词出价技巧新乡搜索引擎优化
  • 建论坛型网站怎么把产品推广到各大平台
  • app网站开发学习重庆企业网站排名优化
  • 做任务 网站nba西部最新排名
  • 网站开发包含的项目和分工sem代运营推广公司
  • 网站做行业认证好处推广营销方案
  • 响应式网站的优点网络运营工作内容