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

个人免费网站建设/武汉网站制作推广

个人免费网站建设,武汉网站制作推广,论文 网站建设可行性,网站设计 wordpress一、题目描述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], ..., nums[n-1], nums[0…

一、题目描述

整数数组 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
  • -104 <= nums[i] <= 104
  • nums 中的每个值都 独一无二
  • 题目数据保证 nums 在预先未知的某个下标上进行了旋转
  • -104 <= target <= 104

二、思路讲解

        数组经过旋转之后,有变成了两个递增序列。要想实现实现时间复杂度为对数级的算法,需要使用二分查找。不是递增或递减序列,也可以做二分查找吗?能!我们将数组从中间一分为二,得到两部分,必然有一部分是递增的,另一部分可能递增也可能不递增(有可能数组在末尾或头部进行旋转,旋转后整个数组还是一个递增序列),那么target必然落在递增或不递增的部分。假如target落在递增部分,直接二分找出target;如果target落在不确定是否递增的部分,就再将数组一分为二,判断target是否落在递增序列上,一直重复下去……

三、Java代码实现

class Solution {public int search(int[] nums, int target) {int i = 0;int j = nums.length - 1;while(i<=j) {int mid = (i+j) / 2;if(target == nums[i]) {return i;}if(target == nums[j]) {return j;}if(nums[mid] == target) {return mid;}if(nums[mid] > nums[0]) {   //说明mid左边部分一定有序if(target>nums[0] && target<nums[mid]) {    //target在一定有序的那一段j = mid - 1;} else {i = mid + 1;}} else {    //说明mid右边的部分一定有序if (nums[mid]<target && target<nums[nums.length-1]) {   //target在一定有序的那一段i = mid + 1;} else {j = mid - 1;}}}return -1;}
}

四、时空复杂度分析

        时间复杂度:        O(logN)

        空间复杂度:        O(1)

http://www.lbrq.cn/news/787753.html

相关文章:

  • 大连html5网站建设费用/友情链接交易网站源码
  • 丹东城乡建设委员会网站/重庆关键词自动排名
  • 英文网站建设需要注意的五点问题/网络推广外包加手机蛙软件
  • 北京做网站费用/互联网培训机构排名前十
  • 如何查看网站的访问量/抖音关键词搜索指数
  • 如何建设属于自己的网站/百度站长平台官网登录入口
  • 东营建设工程信息网官网/宁波seo网站服务
  • 个人做地方网站/网络推广都有哪些平台
  • 东莞公司注册哪家好/以下哪个单词表示搜索引擎优化
  • 定兴做网站的/今日重大新闻头条十条
  • 公司网址正确格式/网站seo优化服务商
  • 制作网站好的公司/网站宣传的方法有哪些
  • 聊天网站制作教程/网络营销比较成功的企业
  • 二级网站的建设/软文写作要求
  • 柬埔寨做网站赌博在那边违反吗/引擎优化是什么工作
  • 网站搭建教学/百度广告投放代理商
  • 云南 网站建设网站/百度官方网站
  • 网上做网站怎么做下拉菜单/中国万网域名注册
  • 公司做网站多少钱乐器/今日头条热榜
  • 政府网站建设 特色栏目展示/seo的方法
  • 学校风采网站建设需求/热搜榜百度
  • 双语网站建设费用/东莞seo外包
  • 福州网站建设招聘信息/南京响应式网站建设
  • 网站建设功能描述书/小网站关键词搜什么
  • 企业网站登录/杭州网站关键词排名
  • 网站建设氵金手指专业/免费seo工具
  • 三个字广告公司名称/seo广告优化多少钱
  • 网站建设地域名/网络营销教程
  • 做分类信息网站如何/企业网站推广方案策划
  • 电子商务官网首页/菏泽资深seo报价
  • HTTPS有哪些优点
  • 案件线索展示与交付项目
  • sqli-labs通关笔记-第30关GET字符注入(WAF绕过 双引号闭合 手工注入+脚本注入两种方法)
  • Flask + HTML 项目开发思路
  • JVM学习日记(十六)Day16——性能监控与调优(三)
  • 《 ThreadLocal 工作机制深度解析:高并发场景的利与弊》