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

剑指offer——链表:旋转数组的最小数字

1、暴力

思路

先设一个变量存储数字的第一个元素,遍历整个数组,将每个元素与标准值进行比较,如果数组内的元素更小,将数组内元素替换标准值

代码

class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param nums int整型vector * @return int整型*/int minNumberInRotateArray(vector<int>& nums) {// write code hereif(nums.size()==0)return 0;int min=nums[0];for(int i=1;i<nums.size();i++){if(min>nums[i]){min=nums[i];}}return min;}
};

2、二分法

思路

使用二分查找,与数组的最右侧节点进行比较

如果中间节点比最右侧节点小,说明最小值应该在中间节点的左侧;如果中间节点比最右侧节点大,说明最小值应该在中间值右侧;如果中间值和最右侧节点值相等,暂时因为重复节点,不能确定最小值位置

代码

class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param nums int整型vector * @return int整型*/int minNumberInRotateArray(vector<int>& nums) {// write code here//使用二分查找int left=0;int right=nums.size()-1;while(left<right){int mid=(left+right)/2; //获取中间值if(nums[mid]<nums[right]){right=mid;}else if(nums[mid]>nums[right]){left=mid+1;}else{right--;}}return nums[left];}
};
http://www.xdnf.cn/news/1156501.html

相关文章:

  • 【OD机试】池化资源共享
  • 「Java案例」利用方法求反素数
  • Ubuntu挂载和取消挂载
  • LP-MSPM0G3507学习--07定时器之二定时节拍
  • ZYNQ平台深度剖析:EMMC/FLASH/SD卡性能测试与创新实践
  • 从磁记录到数据中心:磁盘原理与服务器架构的完整技术链路
  • 两个数据表的故事:第 1 部分
  • Spring之事务使用指南
  • Java行为型模式---解释器模式
  • Openlayers 面试题及答案180道(121-140)
  • Node.js Express keep-alive 超时时间设置
  • @import导入css样式、scss变量用法、static目录
  • Java中List<int[]>()和List<int[]>[]的区别
  • PAT 1049 Counting Ones
  • 医学图像超分辨率重建深度学习模型开发报告
  • 如何用immich将苹果手机中的照片备份到指定文件夹
  • Word for mac使用宏
  • UniApp 常用UI库
  • 机器视觉---深度图像存储格式
  • 闲庭信步使用图像验证平台加速FPGA的开发:第二十五课——正弦波图像的FPGA实现
  • 数据存储方案h5py
  • 【C++基础】面试高频考点解析:extern “C“ 的链接陷阱与真题实战
  • MySQL详解三
  • MyBatis Plus高效开发指南
  • 第459场周赛
  • ESXi6.7硬件传感器红色警示信息
  • 详解Mysql解决深分页方案
  • Python类中方法种类与修饰符详解:从基础到实战
  • [simdjson] ondemand::value | object array
  • 低速信号设计之I3C篇