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

如何用网站做课件信息发布网站有哪些

如何用网站做课件,信息发布网站有哪些,佛山专业网站建设哪家好,如何设计和建立一个公司的网站题目描述 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums [0,1,2,4,5,6,7] 在变化后可能得到: 若旋转 4 次,则可以得到 [4,5,6,7,0,1,2] 若旋转 7 次…

题目描述

已知一个长度为 n 的数组,预先按照升序排列,经由 1n旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:
若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]
若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]
注意,数组 [a[0], a[1], a[2], ..., a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], ..., a[n-2]]

给你一个元素值 互不相同 的数组 nums ,它原来是一个升序排列的数组,并按上述情形进行了多次旋转。请你找出并返回数组中的 最小元素

你必须设计一个时间复杂度为 O(log n) 的算法解决此问题。

示例 1:

输入: nums = [3,4,5,1,2]
输出: 1
解释: 原数组为 [1,2,3,4,5] ,旋转 3 次得到输入数组。

示例 2:

输入: nums = [4,5,6,7,0,1,2]
输出: 0
解释: 原数组为 [0,1,2,4,5,6,7] ,旋转 3 次得到输入数组。

示例 3:

输入: nums = [11,13,15,17]
输出: 11
解释: 原数组为 [11,13,15,17] ,旋转 4 次得到输入数组。

提示:

  • n == nums.length
  • 1 <= n <= 5000
  • -5000 <= nums[i] <= 5000
  • `nums 中的所有整数 互不相同
  • nums 原来是一个升序排序的数组,并进行了 1n 次旋转

代码及注释

func findMin(nums []int) int {left, right := 0, len(nums) - 1 // 循环直到左指针超过右指针for left <= right {// 如果右指针对应的值大于或等于左指针对应的值,说明数组是升序的,直接返回左指针对应的值if nums[right] >= nums[left] {return nums[left]}// 如果只剩下两个元素,返回右指针对应的值,因为数组升序已经判断过了,因此这里直接可以知道nums[right] < nums[left]if right - left == 1 {return nums[right]}mid := (left + right) / 2// 如果中间值是最小值,返回中间值if nums[mid] <= nums[mid - 1] && nums[mid] <= nums[mid + 1] {return nums[mid]}// 如果中间值大于等于左指针对应的值,说明最小值在右半部分,更新左指针if nums[mid] >= nums[left] {left = mid + 1} else { // 否则,最小值在左半部分,更新右指针right = mid - 1}}return 0
}

代码解释

  1. 初始化左右指针:

    • left 指向数组的第一个元素。
    • right 指向数组的最后一个元素。
  2. 循环查找最小值:

    • 如果 nums[right] >= nums[left],说明数组是升序的,直接返回 nums[left]
    • 如果只剩下两个元素 (right - left == 1),因为数组升序已经判断过了,因此这里直接可以知道nums[right] < nums[left],返回 nums[right]
    • 计算中间值 mid
    • 如果 nums[mid] <= nums[mid - 1] && nums[mid] <= nums[mid + 1],说明 mid 是最小值,返回 nums[mid]
    • 如果 nums[mid] >= nums[left],说明最小值在 mid 右侧,更新 left = mid + 1
    • 否则,最小值在 mid 左侧,更新 right = mid - 1

这段代码的时间复杂度是 O(log n),其中 n 是数组 nums 的长度。

http://www.tj-hxxt.cn/news/63074.html

相关文章:

  • 做视频网站视频存放在哪里今日国内新闻
  • 网站seo优化外包企业网站推广优化公司
  • 双语网站建设定制开发站长网站提交
  • 预告网站正在建设中百度竞价推广是什么工作
  • 您公司需要做网站吗的其他说法最近的新闻摘抄
  • 上海注册公司引流v信xiala5厦门seo
  • 做公众号的网站模板下载吗郑州厉害的seo顾问
  • 镇江专业网站制作公司品牌策划书
  • 网站后台文章编辑器搜索引擎优化解释
  • 做图解的网站南京网络推广公司排名
  • 电子网站搜索引擎怎么做交换友情链接的网站标准是什么
  • 开发公司移交物业清单seo关键字怎么优化
  • 深圳做网站推广哪家好优化大师tv版
  • 怎么做网站的内链百度搜索风云榜人物
  • 淘宝网站开发语言杭州seo公司服务
  • 重庆市建设工程造价管理站培训机构哪家最好
  • 免费单页网站模板百度推广好不好做
  • 服务器怎么做网站教程哪个推广平台推广最靠谱
  • 有哪些学做衣服的网站优化关键词排名公司
  • 海南工程建设招标网sem和seo是什么
  • 建设网站需要懂什么意思最靠谱的十大教育机构
  • 做微商卖产品在哪个网站销量能好点站长工具国产
  • 专做logo网站叫什么地方外贸如何做网站推广
  • 宁波专业网站定制制作服务表白网站制作
  • 西宁网站建设公司排行媒体资源网
  • 琴行网站建设方案by72777最新域名查询
  • 企业网站规划与设计互联网营销师培训大纲
  • 做网站的应用宁波seo搜索引擎优化
  • 门户网站登录页面国际新闻视频
  • java个人网站开发新闻软文发稿平台