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

室内设计网站知乎上海网站建设caiyiduo

室内设计网站知乎,上海网站建设caiyiduo,一个新的网站开发语言,9377网页游戏题目链接 Leetcode.33 搜索旋转排序数组 mid 题目描述 整数数组 n u m s nums nums 按升序排列#xff0c;数组中的值 互不相同 。 在传递给函数之前#xff0c; n u m s nums nums 在预先未知的某个下标 k #xff08; 0 ≤ k n u m s . l e n g t h #xff09;…题目链接 Leetcode.33 搜索旋转排序数组 mid 题目描述 整数数组 n u m s nums nums 按升序排列数组中的值 互不相同 。 在传递给函数之前 n u m s nums nums 在预先未知的某个下标 k 0 ≤ k n u m s . l e n g t h k0 \leq k nums.length k0≤knums.length上进行了 旋转使数组变为 [ n u m s [ k ] , n u m s [ k 1 ] , . . . , n u m s [ n − 1 ] , n u m s [ 0 ] , n u m s [ 1 ] , . . . , n u m s [ k − 1 ] ] [nums[k], nums[k1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]] [nums[k],nums[k1],...,nums[n−1],nums[0],nums[1],...,nums[k−1]]下标 从 0 0 0 开始 计数。例如 [ 0 , 1 , 2 , 4 , 5 , 6 , 7 ] [0,1,2,4,5,6,7] [0,1,2,4,5,6,7] 在下标 3 3 3 处经旋转后可能变为 [ 4 , 5 , 6 , 7 , 0 , 1 , 2 ] [4,5,6,7,0,1,2] [4,5,6,7,0,1,2] 。 给你 旋转后 的数组 n u m s nums nums 和一个整数 t t t 如果 n u m s nums nums 中存在这个目标值 t t t则返回它的下标否则返回 − 1 -1 −1 。 你必须设计一个时间复杂度为 O ( l o g n ) O(log n) O(logn) 的算法解决此问题。 示例 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 [4,5,6,7,0,1,2], target 3 输出-1 提示 1 ≤ n u m s . l e n g t h ≤ 5000 1 \leq nums.length \leq 5000 1≤nums.length≤5000 − 1 0 4 ≤ n u m s [ i ] ≤ 1 0 4 -10^4 \leq nums[i] \leq 10^4 −104≤nums[i]≤104 n u m s nums nums 中的每个值都 独一无二题目数据保证 n u m s nums nums 在预先未知的某个下标上进行了旋转 − 1 0 4 ≤ t a r g e t ≤ 1 0 4 -10^4 \leq target \leq 10^4 −104≤target≤104 解法二分 n u m s nums nums 是一个排好序的数组将其 旋转 之后它仍然满足 两段性。 我们让 l 0 , r n − 1 , m i d ( l r ) / 2 l 0 , r n - 1 , mid (l r) / 2 l0,rn−1,mid(lr)/2。 1.如果此时 [ l , m i d ] [l,mid] [l,mid] 区间是是有序的 如果 t t t 在区间 [ l , m i d ] [l,mid] [l,mid] 的范围内也就是 n u m s [ l ] ≤ t ≤ n u m s [ m i d ] nums[l] \leq t \leq nums[mid] nums[l]≤t≤nums[mid]那么就可以缩减 r r r即 r m i d r mid rmid否则说明 t t t 不在这个区间内那么就可以收缩 l l l即 l m i d 1 l mid 1 lmid1 2.如果此时 [ m i d 1 , r ] [mid 1,r] [mid1,r] 区间是有序的 如果 t t t 在区间 [ m i d 1 , r ] [mid 1,r] [mid1,r] 的范围内也就是 n u m s [ m i d 1 ] ≤ t ≤ n u m s [ r ] nums[mid 1] \leq t \leq nums[r] nums[mid1]≤t≤nums[r]那么就可以缩减 l l l即 l m i d 1 l mid 1 lmid1否则说明 t t t 不在这个区间内那么就可以收缩 r r r即 r m i d r mid rmid 时间复杂度 O ( l o g n ) O(logn) O(logn) C代码 class Solution { public:int search(vectorint nums, int t) {int n nums.size();int l 0 , r n - 1;while(l r){int mid (l r) 1;//这里必须为 nums[l] nums[mid]//因为 mid 是下取整的//如果当 nums 中的元素只有两个是 例如 nums [3,1] , t 1//此时 nums[l] 和 nums[mid] 都是同一个元素 即 3//如果不这样做的话 就会不满足这个判断进入到 else 的逻辑中 此时就会得出一个错误的答案if(nums[l] nums[mid]){if(nums[l] t t nums[mid]) r mid;else l mid 1;}else{if(nums[mid] t t nums[r]) l mid 1;else r mid;}}return nums[l] t ? l : -1;} };
http://www.hkea.cn/news/14300674/

相关文章:

  • 网站开发用什么语言品牌建设有哪些方面
  • 湖南铁军工程建设有限公司官方网站五屏网站建设动态
  • 高端商务经纪网站建设seo如何快速出排名
  • 中国建设银行网站快速查询阿里云如何添加新网站
  • 用jsp做一网站的流程图wap html网站模板
  • 教育行业建设网站seo人员要先对网站进行诊断
  • 男装网站模板演示网站建设报告怎么写
  • 网站制作语言有哪些百度竞价推广出价技巧
  • 设计免费素材网站有哪些杭州网站模板
  • 音乐网站数据库怎么做关于百度网站的优缺点
  • 甘肃省建设社厅网站施工企业包括哪些
  • 网站推广目标网站开发属于固定资产吗
  • 成都门户网站建设公司上海哪家网站建设比较好
  • 怎样创建购物网站wordpress百度网盘
  • wordpress在页眉加载js南昌seo营销
  • 寿光专业做网站的公司wordpress实现阅读全文
  • 1个月能学好网站开发吗建立类似淘宝的网站
  • 晋江企业网站制作wordpress微电影模板下载
  • 成都大丰五块石网站建设养生馆室内设计
  • html5网站是用什么软件做的吗小程序开发费用一般多少钱
  • wordpress站点费用小程序怎么开发自己的微信小程序
  • 更换网站标题安徽富通建设工程有限公司网站
  • 鼎成中考开卷通有关网站做的电子书wordpress更改编辑器
  • 网站策划与设计梵克雅宝官网中国官网
  • 软件网站建设的目的做pc端网站包括哪些
  • 什么网站可以做进出口买卖dchaser wordpress
  • 合肥公司做网站网站建设安全
  • 网站代码 输入文字 跳出内容网站建设总结会上 领导讲话稿
  • 网页对于网站有多重要如何用微信做网站
  • 网站开发流程包括石岩医院网站建设