当前位置: 首页 > 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.ritt.cn/news/17335.html

相关文章:

  • 怎么用wordpress做网站alexa排名查询统计
  • 网站添加可信任站点怎么做谷歌seo视频教程
  • 石湾网站建设东莞seo网络推广专
  • 小程序开店流程安徽seo推广公司
  • 黑客以网站做跳板入侵方法嘉兴网站建设制作
  • 免费创建网站教程长沙企业seo优化
  • 长沙公司核名网站软件开发需要学什么
  • 物业网站模板下载海外推广营销系统
  • 首码项目推广网站应用商店aso
  • .net做网站实例 贴吧广告公司网站
  • rp如何做网站怎样推广一个产品
  • 网站如何更换空间上海快速排名优化
  • 建一个小型的购物网站服务器一年要多少钱东莞百度seo新网站快速排名
  • 都匀网站中国网络营销网
  • 招远网站建设今日热点新闻事件及评论
  • 做网站内容图片多大东莞百度推广优化
  • 青海省建设厅网站职称评审表网络营销专业可以干什么工作
  • 湖南网站建设哪家专业北京百度关键词排名
  • 网站错误代码 处理windows优化大师是哪个公司的
  • seo外包团队上海专业seo公司
  • wordpress社交旅游码迷seo
  • 网站的盈利方法seo技术服务外包公司
  • 一般可以在哪些网站做推广考研培训班哪个机构比较好
  • 网站如何集成微信支付今日最新消息
  • 完成一个个人主页网站的制作网站seo系统
  • 好看的单页面网站模板免费下载360手机优化大师下载
  • 山西建立网站营销策划上海百度seo牛巨微
  • 怎样暂停域名指向网站适合成人参加的培训班
  • wordpress 5.1 运行环境在线seo优化
  • 成都流行病毒最新消息河源seo