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

芦苞网站建设seo是什么意思新手怎么做seo

芦苞网站建设,seo是什么意思新手怎么做seo,南宁网站建设专业品牌,flask公司网站开发整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nums[1], …, …

整数数组 nums 按升序排列,数组中的值 互不相同 。

在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。

给你 旋转后 的数组 nums 和一个整数 target ,如果 nums 中存在这个目标值 target ,则返回它的下标,否则返回 -1 。

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

示例 1:

输入:nums = [4,5,6,7,0,1,2], target = 0
输出:4
示例 2:

输入:nums = [4,5,6,7,0,1,2], target = 3
输出:-1
示例 3:

输入:nums = [1], target = 0
输出:-1

提示:

1 <= nums.length <= 5000
- 1 0 4 10^4 104 <= nums[i] <= 1 0 4 10^4 104
nums 中的每个值都 独一无二
题目数据保证 nums 在预先未知的某个下标上进行了旋转
- 1 0 4 10^4 104 <= target <= 1 0 4 10^4 104

题目看完,感觉跟二分查找沾边,但是数组从中间某个位置调换了。

按照二分查找的思路,应该对比target跟nums[mid]的大小,但对比之后发现下一步如何移动跟mid所处位置有关,直接看代码:

class Solution:def search(self, nums: list, target: int) -> int:return self.search_helper(nums, target, 0, len(nums) - 1)def search_helper(self, nums: list, target: int, left: int, right: int):if left > right:return -1mid = (left + right) // 2if nums[mid] == target:return midif nums[left] == target:return leftif nums[right] == target:return right#此时mid两侧必定是一边有序一边无序,测试左边如果有序那右边无序,否则右边有序if nums[left] < nums[mid]:if target < nums[mid] and target > nums[left]:return self.search_helper(nums, target, left + 1, mid - 1)else:return self.search_helper(nums, target, mid + 1, right - 1)else:if target > nums[mid] and target < nums[right]:return self.search_helper(nums, target, mid + 1, right - 1)else:return self.search_helper(nums, target, left + 1, mid - 1)

代码中的注释是关键,如果nums[mid]不等于target,那么mid两边一定有一边是有序而另一边一定无序,是否有序只要测试nums[left]与nums[mid](nums[mid]与nums[right]也行)就可以知道是否有序,当确定有序的一边后,就可以使用二分查找的条件了。17,18行(22,23行)表示需要先有序再二分

http://www.ds6.com.cn/news/98058.html

相关文章:

  • 广东网站建设公司报价网络营销理论包括哪些
  • 网站首页菜单栏模块怎么做的成品网站源码的优化技巧
  • 百度搜索引擎的使用方法北京seo关键词排名优化
  • 网站点击赚钱怎么做磁力兔子搜索引擎
  • 建一个pc网站需要多少钱吴中seo页面优化推广
  • 源码网站建设口碑营销例子
  • 高端网站建设公司排行互联网培训班学费多少
  • 北京市公安局海淀分局网站备案品牌策划方案
  • 网站3d展示怎么做的南京今天重大新闻事件
  • 做音乐的网站网络营销机构官方网站
  • 佛山网站建设 骏域网页制作软件有哪些
  • 网站wordpress搜盘网
  • 免费制作相册视频网站模板东莞网站建设工作
  • 西安营销网站建设北京seo公司司
  • 国内手机网站建设浏览器网址
  • 自己电脑做局域网网站服务器个人怎么建立网站
  • 哪个网站可以做头像的网络媒体
  • ASP JSP动态网站开发学生网页制作成品
  • 交友系统网站建设seo从0到1怎么做
  • 网站建设系统认证系统网站站点
  • 成都城乡建设网站自己做网站需要多少钱
  • 政府网站建设 托管公司品牌推广方案范文
  • 常用设计网站有哪些软件商丘关键词优化推广
  • 青海建设信息网站杭州余杭区抖音seo质量高
  • 淘宝做收藏的网站上海网络seo优化公司
  • 2345网站登录今日头条新闻发布
  • 网站关键字统计淘宝指数
  • 2022最新通道地址1爱站seo工具
  • 昆明哪个公司做网站建设最好科技公司网站制作公司
  • 网站推广应该怎么做it培训班大概需要多少钱