尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
JAVA练习340- 寻找旋转排序数组中的最小值
题目概览已知一个长度为n的数组预先按照升序排列经由1到n次旋转后得到输入数组。例如原数组nums [0,1,2,4,5,6,7]在变化后可能得到若旋转4次则可以得到[4,5,6,7,0,1,2]若旋转7次则可以得到[0,1,2,4,5,6,7]注意数组[a[0], a[1], a[2], ..., a[n-1]]旋转一次的结果为数组[a[n-1], a[0], a[1], a[2], ..., a[n-2]]。给你一个元素值互不相同的数组nums它原来是一个升序排列的数组并按上述情形进行了多次旋转。请你找出并返回数组中的最小元素。你必须设计一个时间复杂度为O(log n)的算法解决此问题。示例 1输入nums [3,4,5,1,2]输出1解释原数组为 [1,2,3,4,5] 旋转 3 次得到输入数组。示例 2输入nums [4,5,6,7,0,1,2]输出0解释原数组为 [0,1,2,4,5,6,7] 旋转 4 次得到输入数组。示例 3输入nums [11,13,15,17]输出11解释原数组为 [11,13,15,17] 旋转 4 次得到输入数组。提示n nums.length1 n 5000-5000 nums[i] 5000nums中的所有整数互不相同nums原来是一个升序排序的数组并进行了1至n次旋转来源153. 寻找旋转排序数组中的最小值 - 力扣LeetCode解题分析方法二分查找先进行一次二分令中间索引为 mid起始索引为 i结束索引为 j二分之后得到的两个子数组至少有一个时递增的那么当 nums[ i ] nums[ mid ] 且 nums[ mid ] nums[ j ] 时mid 到 j 一定是递增数组那么最小值一定在左边数组或为 nums[mid]当 nums[ i ] nums[ mid ] 且 nums[ mid ] nums[ j ] 时i 到 mid 一定是递增数组那么最小值一定在右边数组当 nums[ i ] nums[ mid ] nums[ j ] 时整个数组就是递增数组最小值就为 num[ i ]当 nums[ i ] nums[ mid ] nums[ j ] 时不可能存在这种情况时间复杂度O(logn)空间复杂度O(1)class Solution { public int findMin(int[] nums) { int n nums.length; int i 0, j n - 1, min nums[0]; while(i j) { int mid (i j) / 2; if (nums[mid] nums[i] nums[mid] nums[j]) { min Math.min(min, nums[mid]); j mid - 1; } else if (nums[mid] nums[i] nums[mid] nums[j]) { i mid 1; } else if (nums[i] nums[mid]) { min Math.min(min, nums[i]); break; } else { min Math.min(min, nums[j]); break; } } return min; } }
RELATED

相关推荐

TLV320DAC3120 miniDSP寄存器配置实战:从系数RAM到指令RAM的深度解析

TLV320DAC3120 miniDSP寄存器配置实战:从系数RAM到指令RAM的深度解析

1. TLV320DAC3120的miniDSP:从硬件到算法的深度掌控在音频系统开发领域,尤其是消费电子和专业音频设备中,我们常常面临一个核心矛盾:标准化的音频编解码器(Codec)提供了开箱即用的便利性,但其固…

📅 2026/9/15 11:46:00
JAVA练习339- 搜索旋转排序数组

JAVA练习339- 搜索旋转排序数组

题目概览 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 向左旋转&#xff0c;使数组变为 [nums[k], nums[k1], ..., nums[n-1], nums[0…

📅 2026/8/22 17:00:11
行业内知名的仿生木皮供应商哪家靠谱

行业内知名的仿生木皮供应商哪家靠谱

在装修市场日益发展的今天&#xff0c;仿生木皮凭借其美观与实用兼备的特性&#xff0c;成为众多业主和设计师的心头好。然而&#xff0c;面对市场上众多的仿生木皮供应商&#xff0c;究竟哪家才靠谱呢&#xff1f;今天就来给大家详细分析分析。博诺狮&#xff1a;品质之选博诺…

📅 2026/9/15 16:17:19
MORE NEWS

更多资讯

📰

Security-101 安全实践与文档体系精讲:策略、标准、基线、指南、流程与合规法规

Security-101 安全实践与文档体系精讲&#xff1a;策略、标准、基线、指南、流程与合规法规 【免费下载链接】Security-101 8 Lessons, Kick-start Your Cybersecurity Learning. 项目地址: https://gitcode.com/GitHub_Trending/se/Security-101 本文是开源课程 Securi…

📰

企业AI伦理审查体系从零搭建:架构师视角的治理落地指南

先说一个我亲历的上线事故。前年我们给某业务线做了一个智能客服大模型&#xff0c;上线第二天就有用户反馈&#xff0c;系统对部分地区的方言回答明显敷衍&#xff0c;同等问题换普通话和方言问&#xff0c;答案质量差好几个档位。这个Case本身不复杂&#xff0c;就是训练数据…

📰

tsParticles 粒子动画教程:三步做出免费的网站动态背景

tsParticles 粒子动画教程&#xff1a;三步做出免费的网站动态背景 【免费下载链接】tsparticles tsParticles - Easily create highly customizable JavaScript particles effects, confetti explosions and fireworks animations and use them as animated backgrounds for y…

📰

GitHub Copilot 替代方案实测:免费 AI 编程助手如何选型与迁移

GitHub Copilot 到期了&#xff1f;插件突然不能用了&#xff1f;或者你只是翻了翻 Edge 浏览器&#xff0c;发现 153 版本里 Copilot 按钮没了就慌了&#xff1f;别急&#xff0c;先把这个问题拆开。我这两年试过包括 Codeium、Tabnine、通义灵码、CodeGeeX、Amazon Q Develop…

📰

学生编程开发环境搭建:预算有限下的轻量高效方案

1. 学生编程开发软件怎么选&#xff1a;预算有限时的思路与工具分析 学生阶段选开发工具&#xff0c;不是在挑“最好”的&#xff0c;而是在找“刚刚好”的。我带过三届毕业设计团队&#xff0c;每年都会遇到同样的问题&#xff1a;大二学生想做学生成绩管理系统&#xff0c;手…

📰

Trae 的 Skill 与 Tool 对比:模型接入改到 TaoToken 后怎么验

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬