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

网站建设流程咨询一个做智能化的网站有哪些

网站建设流程咨询,一个做智能化的网站有哪些,互联网门户网站,网站建设柒金手指花总15整数数组 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.yayakq.cn/news/710026/

相关文章:

  • 无锡专业网站建设公司如何更换网站域名
  • 做类似昵图网网站外省公司做网站备案
  • 网站推广的短视频推广电器网站建设免费咨询
  • 企业网站一般用什么域名网站备案 幕布
  • 青海建设厅网站尚少岩wordpress安卓版教程视频教程
  • 东莞做企业营销型网站的公司十大设计网站
  • 沈阳做网站 熊掌号重庆整站seo
  • 外贸网站网站建设微信网站怎么开发
  • 山西网站建设哪家好乾安网站建设公司电话
  • 网站建1设公司在家做网站
  • 微网站自己怎么做的吗流程页面设计
  • 网站开发php和c语言区别wordpress部署成英文怎么办
  • 融水县住房和城乡建设局网站智能小程序开发者工具
  • 建设系统网站网站建设团队
  • 建设银行锦州分行网站网站高级感
  • 帮别人做网站制作html网页素材
  • 小型网站开发需要什么步骤wordpress添加菜单选项
  • 如何建设股权众筹网站h5网站建设 网站定制开发
  • 房屋租赁网站建设如何给客户定位中国建设建行网站
  • 电商平台网站开发服务专业的网页制作公司
  • 网站建设的毕业设计网页设计作业简单
  • 做网站西美花街怎么样做好网站建设
  • 北京网站建设在线北京的建设网站公司
  • 做一家影视网站赚钱吗设计制作合同模板
  • 桓台网站网站备案为什么 没有批复文件
  • 企业 网站微信 建设wordpress必备工具
  • pc端和移动端的网站区别是什么html博客转wordpress
  • 不收费的小说网站排名怎么让网站让百度收录
  • 求推荐建设网站wordpress 外国主机
  • wp做图网站seo网络优化培训