news 2026/7/2 4:01:16

【每日一题】LeetCode 33. 搜索旋转排序数组 TypeScript

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【每日一题】LeetCode 33. 搜索旋转排序数组 TypeScript

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

在传递给函数之前,nums在预先未知的某个下标k0 <= 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

首先来个错误版本:时间复杂度O(n)

function search(nums: number[], target: number): number { for(let i=0;i<nums.length;i++){ if(nums[i]===target){ return i } } return -1 };

正文来了

function search(nums: number[], target: number): number { let left = 0 let right = nums.length - 1 while(left<=right){ const mid = Math.floor((left + right) / 2) if(nums[mid]===target){ return mid } //如果左半部分升序 if(nums[left] <= nums[mid]){ if(target >= nums[left] && target <= nums[mid]){ right = mid -1 }else{ left = mid + 1 } }else{ //否则右半部分升序 if(target>=nums[mid] && target <=nums[right]){ left = mid + 1 }else{ right = mid - 1 } } } return -1 };

共勉

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 4:00:29

AI 辅助:从零构建系统级工具:先写能验证假设的最小版本

AI 辅助&#xff1a;从零构建系统级工具&#xff1a;先写能验证假设的最小版本 一、最小版本要验证真实痛点 从零构建系统级工具时&#xff0c;很容易被宏大想法带跑&#xff1a;插件架构、配置中心、远程同步、漂亮 TUI、跨平台打包都想做。结果核心功能还没验证&#xff0c;项…

作者头像 李华
网站建设 2026/7/2 3:57:08

TweetNaCl.js测试与基准测试完整指南:保障前端加密安全与性能

1. 项目概述&#xff1a;为什么我们需要关注TweetNaCl.js的测试与基准测试&#xff1f;如果你在前端或者Node.js项目中处理过加密功能&#xff0c;比如用户密码的哈希、端到端加密聊天&#xff0c;或者文件签名&#xff0c;那你很可能听说过或者用过TweetNaCl.js。它是一个纯Ja…

作者头像 李华
网站建设 2026/7/2 3:55:35

淘宝新店15天冷启动完整方案

很多淘宝新手商家开店后都会陷入同一个困境&#xff1a;店铺零销量、零权重、零流量&#xff0c;免费自然流量拿不到&#xff0c;付费直通车投产低、烧钱没效果&#xff0c;新店活活卡在冷启动阶段止步不前。淘宝平台对新店有专属的15天新品流量扶持期&#xff0c;这是新店起量…

作者头像 李华
网站建设 2026/7/2 3:55:33

GPU解码采样物理限制

一、背景与问题描述在多路视频进行AI推理过程中&#xff0c;为了节省GPU解码算力&#xff0c;以支持更多路视频流&#xff0c;采用通过固定时间或帧进行采样解码方法&#xff0c;发现无法实现。二、核心结论很难按照规律物理性的跳过中间帧&#xff01;&#xff01;&#xff01…

作者头像 李华
网站建设 2026/7/2 3:54:08

胡家奇理事长会晤诺贝尔经济学奖得主埃里克·马斯金教授

2026年6月15日&#xff0c;北京迎来一场跨越国界与学科的思想盛宴。人类会理事长胡家奇先生&#xff0c;与专程到访的2007年诺贝尔经济学奖得主、哈佛大学教授埃里克马斯金&#xff0c;举行了以“科技与人类未来”为主题的学术交流会&#xff0c;胡家奇理事长通过连续会晤诺奖学…

作者头像 李华