php实现有序数组旋转后寻找最小值办法
时间:2022-07-27
本文章向大家介绍php实现有序数组旋转后寻找最小值办法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
1、利用二分法寻找数组中的最小元素
2、定义两个 指针left和right,指向数组的第一个元素和最后一个元素,定义一个中间指针mid
3、如果arr[left]小于arr[mid],那么把左边指针移动到mid处,mid从新计算 4.如果arr[left]大于arr[mid],那么把右边指针移动到mid处,mid从新计算,缩小范围
left=0 right=arr.length-1
while arr[left] =arr[right]
if right-left==1
mid=right
break
mid=left+(right-left)/2
if arr[left]<=arr[mid]
left=mid
else
right=mid
return arr[mid]
<?php
$arr=array(3,4,5,6,1,2);
function minNumberInRotateArray($rotateArray){
$left=0;//左边指针
$right=count($rotateArray)-1;//右边指针
//判断条件,left大于right就一直进行
while($rotateArray[$left] =$rotateArray[$right]){
//left和right已经紧挨着了
if(($right-$left)==1){
$mid=$right;
break;
}
//中间点
$mid=ceil($left+($right-$left)/2);
//left小于中间点
if($rotateArray[$left]<$rotateArray[$mid]){
//left移动到中间点
$left=$mid;
}else{
//right移动到中间点
$right=$mid;
}
}
return $rotateArray[$mid];
}
$min=minNumberInRotateArray($arr);
var_dump($min);//int(1)
以上就是php怎么实现有序数组旋转后寻找最小值(代码)的详细内容,感谢大家对网站事(zalou.cn)的支持。
- Zipkin和微服务链路跟踪
- Java8真不用再搞循环了?
- 针对事件驱动架构的Spring Cloud Stream
- Spring的三种Circuit Breaker
- Spring5以来注册Bean的各种姿势,特别最后的纯编码注册值得尝试
- ONOS一键安装脚本
- Spring 5 新增全新的reactive web框架:webflux
- 认证鉴权与API权限控制在微服务架构中的设计与实现(一)
- 在服务器上利用docker快速部署博客—jpress
- NSQ深入与实践
- 排序算法性能比较
- 上一期前端面试题整理答案
- 自己动手用Socket写一个HttpClient发送GET请求
- Ryu:模块间通信机制分析
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- 第三章--第三节:列表
- 第三章--第三节(补充):列表排序
- 第三章--第四节:字典
- 2020最新Android面筋:太难了!历经一周对接6个面试官后,我的头条Offer终于来了!
- 第三章--第五节:集合
- Python 爬虫超详细讲解(零基础入门,老年人都看的懂)
- JavaWeb - Linux Operating System
- 第三章--第六节:元祖
- JavaWeb - 开发环境搭建和 Shell 编程
- 第四章--第一节:函数
- 教育平台项目后台管理系统:接口文档
- 第四章--第二节:类
- 教育平台项目后台管理系统:介绍与搭建
- Python办公自动化之Excel做表自动化:全网最全,看这一篇就够了!
- Java学习笔记-spring-Bean实例化