8 旋转数组的最小数字

输入一个递增排序数组的一个旋转,输出旋转数组的最小元素
例如1,2,3,4,5的一个旋转可以为3,4,5,1,2
把一个数组的最开始若干个元素搬到数组的末尾,称之为数组的旋转

输出旋转数组的最小元素

 

C++:

 1 class Solution {
 2 public:
 3     int minInOrder(vector<int> rotateArray , int left , int right) {
 4         int res = rotateArray[left] ;
 5         for (int i = left ; i <= right ; i++){
 6             if (rotateArray[i] < res)
 7                 res = rotateArray[i] ;
 8         }
 9         return res ;
10     }
11     
12     int minNumberInRotateArray(vector<int> rotateArray) {
13         int len = rotateArray.size() ;
14         if (len <= 0)
15             return 0 ;
16         int left = 0 ;
17         int right = len - 1 ;
18         int mid = left ;
19         while(rotateArray[left] >= rotateArray[right]){
20             if (right-left == 1){
21                 mid = right ;
22                 break ;
23             }
24             mid = (left+right)>>1 ;
25             if (rotateArray[left] == rotateArray[mid] && rotateArray[mid] == rotateArray[right]){
26                 return minInOrder(rotateArray,left,right) ;
27             }
28             if (rotateArray[mid] >= rotateArray[left]){
29                 left = mid ;
30             }else if (rotateArray[mid] <= rotateArray[right]){
31                 right = mid ;
32             }
33         }
34         return rotateArray[mid] ;
35     }
36 };

 

 

java:

 1 import java.util.ArrayList;
 2 public class Solution {
 3     public int minNumberInRotateArray(int [] nums) {
 4         if (nums.length == 0)
 5             return 0 ;
 6         int left = 0 ;
 7         int right = nums.length - 1 ;
 8         while(left < right){
 9             int mid = left + (right - left) / 2 ;
10             if (nums[left] == nums[mid] && nums[mid] == nums[right]){
11                 return minNumber(nums , left , right) ;
12             }else if (nums[mid] <= nums[right]){
13                 right = mid ;
14             }else{
15                 left = mid + 1 ;
16             }
17         }
18         return nums[left] ;
19     }
20     
21     private int minNumber(int [] nums , int left , int right) {
22         int res = nums[left] ;
23         for(int i = left ; i <= right ; i++){
24             if (nums[i] < res){
25                 res = nums[i] ;
26             }
27         }
28         return res ;
29     }
30 }

 

转载于:https://www.cnblogs.com/mengchunchen/p/7905808.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281761.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软考新思维--2017年上半年信息系统项目管理师上午试题分析与答案(试题6-10题)...

2017年上半年信息系统项目管理师上午试题分析与答案&#xff08;试题1-5题&#xff09; 6.&#xff08;&#xff09;不是获取需求的方法。A、问卷调查B、会议讨论C、获取原型D、决策分析【软考新思维】需求是获取的得来的&#xff0c;不是决策得来的。 先是获取需求&#xff0c…

php 合并 字符串_PHP如何去重合并字符串

本篇文章主要给大家介绍PHP如何去重合并字符串。推荐教程&#xff1a;《PHP教程》对于PHP学习者来说&#xff0c;合并多个字符串&#xff0c;应该并不是很难。但是如果这多个字符串中&#xff0c;有相同元素&#xff0c;当我们想要合并他们并且要使其值具有唯一值。也就是说合并…

10.31T4 HAOI2010最长公共子序列 计数+容斥原理

2775 -- 【HAOI2010】最长公共子序列 Description 字符序列的子序列是指从给定字符序列中随意地&#xff08;不一定连续&#xff09;去掉若干个字符&#xff08;可能一个也不去掉&#xff09;后所形成的字符序列。令给定的字符序列X“x0&#xff0c;x1&#xff0c;…&#xff0…

软概(lesson 2):课堂测试

一、测试题目 二、完成过程 1.设计思想 ①连接mysql数据库 ②设计user类&#xff0c;增加参数 ③设计add类&#xff0c;向数据库内增加内容 ④设计addInput页面&#xff0c;完成录入操作 ⑤设计add页面&#xff0c;接收录入的参数&#xff0c;并调用add类函数 2.源代码 user.ja…

谷歌Gboard输入法新增“无痕模式”:仅在Chrome隐身窗口中适用

据外媒Android Police报道&#xff0c;如大家所知道的&#xff0c;Chrome浏览器中的“隐身模式”是为了防止你的私密浏览记录被其他人看到&#xff0c;但是&#xff0c;在这种模式下&#xff0c;你的输入法键盘依然会记住你输入的短语&#xff0c;为了阻止你的键盘在Chrome隐身…

php两个数组融合,php合并两个数组的方式有哪些

1、arrary_merge示例代码&#xff1a;$arr1 array(1, 2, 3, 4, 5);$arr2 array(1, 2, 6, 7, 8, 9, 10);$result1 array_merge($arr1, $arr2);$arr3 array("name" > "itbsl", "age" > 13, "sex" > "Male");$arr…

最近对latin-1这个字符集产生了不少好感

【简介】 最近我要解析一个数据库中间件的日志、这个中间件会在日志中记录SQL发往的后台DB ,执行耗时&#xff0c;对应的SQL&#xff1b;中间件直接把SQL写到 了日志中去&#xff0c;并没有对SQL进行适当的编码转换&#xff1b;理想情况下这个也不会有什么问题&#xff0c;不幸…

面象对象设计原则之六:迪米特原则(LeastKnowledge Principle, LKP)

迪米特法则来自于1987年美国东北大学(Northeastern University)一个名为“Demeter”的研究项目。迪米特法则又称为最少知识原则(LeastKnowledge Principle, LKP)&#xff0c;其定义如下&#xff1a; 迪米特法则(Law of Demeter, LoD)&#xff1a;一个软件实体应当尽可能少地与…

php symfony urlmatcher-gt;match,symfony路由组件(The Routing Component)

The Routing component 把HTTP request转换为一系列的配置参数.安装你有两种方式来安装这个组件:通过 Composer (symfony/routing on Packagist);使用官方的 Git repository (https://github.com/symfony/Routing)。然后, 需要Composer把vendor/autoload.php 这个文件提供 给 a…

R升级和包更新

1.R升级 # 安装包"installr" install.packages("installr") # 导入包 library(installr) # 升级 updateR() 2.包升级 # 包升级 update.packages() 3.安装包 # 选择镜像 options(reposstructure(c(CRAN"https://cran.cnr.berkeley.edu/"))) # 安装…

其他对象的表单

1.textarea&#xff1a; textarea对象就想是input对象中的text样式的表单&#xff0c;只不过是扩展过的text样式表单。它可以通过行&#xff08;rows&#xff09;属性和列&#xff08;cols&#xff09;属性来编辑文本域的大小。最常见于留言板、论坛时回帖时的文本框等。 <h…

WinForm(十三)WebView2

WebView是WinForm框架中一个控件&#xff0c;用来对网页信息交互&#xff0c;有时Web自己开发的&#xff0c;有时Web是三方的。下面通过一个例子来看看WebView2的使用。首先看Web的逻辑&#xff0c;是一个商品添加页面&#xff0c;用AlpineJS和BootStrap来开发的&#xff0c;业…

Fluent UDF【4】:C语言

Fluent UDF利用的是C语言&#xff0c;本文简单介绍在UDF中经常会用到的C语言常识。 本文部分内容来自UDF手册。 1 C语言中的注释 C语言中的注释利用/*及*/来实现。例如: /*这是一个注释*/ 注释也可以跨行实现&#xff0c;如: /*这是一个 跨行注释*/ 注意:在编写UDF的过程中&…

java 画砖块,钢笔画入门:教你画砖块

说到砖块很多朋友会想到搬砖&#xff0c;绘画吧今天要教大家用钢笔画一块砖&#xff0c;因为画建筑的时候经常要画砖墙&#xff0c;我们先从简单的砖块学起&#xff0c;之后绘画吧会给大家分享画一面砖墙的哦。绘制要点&#xff1a;本教程的主体物选择了一块有小残缺面的砖头。…

[转] Node.js的线程和进程

[From] http://www.admin10000.com/document/4196.html 前言 很多Node.js初学者都会有这样的疑惑&#xff0c;Node.js到底是单线程的还是多线程的&#xff1f;通过本章的学习&#xff0c;能够让读者较为清晰的理解Node.js对于单/多线程的关系和支持情况。同时本章还将列举一些让…

第三方支付异步通知的陷阱

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/j16421881/article/details/78703792 用户下单后调用第三方支付付款&#xff0c;然后接收第三方支付的异步通知&#xff0c;以便确认支付是否成功。 如下图 但异步通知可能…

js请求php文件 302,采集某个 url, js 请求 200,浏览器访问 302

/** 文件名: sso.js* 描述: 提供对 CAS 单点登录的封装** 功能说明&#xff1a;* 实现多个应用之间的单点登录( SSO )功能&#xff0c;应用可以部署在不同的域名。容器的退出直接写在头里&#xff0c;避免 JS 过多加载** 版本: 1.0.0.1* 作者: [email protected]* 日期&#xf…

Jetty 类载入问题处理

前几日使用 Jetty (9.2)部署公司一个 web 项目,这个项目原本部署在 Tomcat server上,一切正常,可是部署到 Jetty 后,启动报错.关键错误信息为"java.lang.NoClassDefFoundError: Could not initialize class org.apache.tomcat.jdbc.pool.DataSource" 项目使用了 Tomc…

2.3 万 Star,Nginx 可视化配置工具

你好&#xff0c;这里是 Dotnet 工具箱&#xff0c;定期分享 Dotnet 有趣&#xff0c;实用的工具或组件&#xff0c;希望对您有用&#xff01;对于前后端开发工程师来说&#xff0c; Nginx 是必须掌握的工具&#xff0c;因为它不仅仅是一个 Web Server&#xff0c;还包含了其他…

城市智慧停车系统方案的产品设计体系介绍

最近几年随着大数据技术快速发展与应用&#xff0c;智慧城市随即被正式提出。而且&#xff0c;我们也可以深刻感受到“智慧”正在慢慢改变我们的生活方式和城市。要让城市变智慧的地方太多太多&#xff0c;当前我们接触做多的可能就是外出停车&#xff0c;比如很多商场的停车系…