牛客网剑指offer

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。

因为是旋转数组,考虑使用二分查找的方法,根据题目的意思,其实可以看作两个递增的数组,最开始旋转过后,array[0]一定大于或者等于array[lenth-1],
通过二分查找,如果中间的数大于array[0],说明最小的数还在后面,如果中间的数小于array[lenth-1],说明最小的数在前面

public int minNumberInRotateArray(int [] array) {  //ac的算法int left=0,right=array.length-1,mid;while(true) {if (right-left==1) {if (right>left) {return left;}else {return right;}}mid=left+right/2;if (array[mid]>array[left]) {left=mid;continue;}else if (array[mid]<array[right]) {right=mid;continue;}else if (array[mid]==array[left]||array[mid]==array[right]) {return getnum(array,left,right);}}}public int getnum(int [] array,int left,int right) {int min=array[left];for(;left<right;left++) {if (array[left]<min) {min=array[left];break;}}return min;}

牛客网剑指offer相关推荐

  1. 牛客网剑指offer编程实践1-10题

    牛客网剑指offer编程实践1-10题 1.二维数组中的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这 ...

  2. Day5.牛客网剑指offer 67题之43-54题(java代码)

    文章目录 Day5.牛客网剑指offer 67题之43-54题 43.左旋转字符串 44.翻转单词顺序列 45.扑克牌顺序 46.孩子们的游戏 47.求1+2+...+n 48.不用加减乘除做加法 4 ...

  3. Java算法:牛客网Java版剑指Offer全套算法面试题目整理及电子档,Java算法与数据结构面试题,面试刷题、背题必备!牛客网剑指offer

    剑指offer(java版) 牛客网Java版剑指Offer全套题目67道 资源来源于网络 目录 1.二维数组中的查找 2.替换空格 3.从尾到头打印链表 4.重建二叉树 5.用两个栈实现队列 6.旋 ...

  4. 牛客网剑指offer java 全部题解

    经过数月的努力,终于更完了牛客网的66道剑指offer,以下的顺序和大家在牛客网的顺序是一样的(排序也花了不少时间),希望对大家找工作/提高算法能力能起到些许帮助. 每天一道剑指offer-二维数组中 ...

  5. 《牛客网 剑指Offer前20题》

    <剑指Offer> 牛客网 前20道题 前言知识 面试题1:二维数组中的查找 面试题2:二维数组中的查找 面试题3:从头到尾打印链表 面试题4:重建二叉树 ***** 面试题5:两个栈实现 ...

  6. 牛客网剑指offer——Java题解

    剑指offer JZ1 二维数组中的查找 题目描述 在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这 ...

  7. 牛客网剑指offer(Python版)

    剑指offer官网:  https://www.nowcoder.com/ta/coding-interviews 写在前面的话 刷剑指offer的时候只需要提交函数核心部分,但是在公司实际笔试时却需 ...

  8. 牛客网剑指offer编程实践41-50题

    41.和为S的连续正数序列 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两 ...

  9. 牛客网剑指Offer C++题解

    [二维数组中的查找]:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是 ...

  10. 牛客网剑指offer编程实践51-66题

    51. 构建乘积数组 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]A[1]...A[i-1]A[i+1]...A[n-1].不 ...

最新文章

  1. 用电脑自带画图工具加字方法
  2. 【Android 性能优化】布局渲染优化 ( GPU 过度绘制优化总结 | CPU 渲染过程 | Layout Inspector 工具 | View Tree 分析 | 布局组件层级分析 )
  3. 一个简单的Android音乐播放器
  4. eclipse javaw.exe in your current path问题
  5. 经典网页设计:20例与众不同的网页联系表单设计
  6. 【Python】Python“表情包”工具包真好用
  7. 常见问题_空指针异常
  8. java队列等待唤醒_Java深入学习29:线程等待和唤醒的两个方案
  9. data studio_面向营销人员的Data Studio —报表指南
  10. 初学大数据之如何选择机器学习算法
  11. P1-0:项目框架搭建
  12. 十二、程序返回、数据类型表示、代码注释
  13. Java关键字及其作用详解
  14. 汉语为主体的计算机网络环境,读书笔记 | 鲁川:汉语语法的意合网络 | 从网络到表层序列的生成...
  15. 读《所谓情商高,就是会说话》笔记
  16. 微信小程序制作——获取用户信息
  17. 实践者颜水成:在学术界「恋爱」 在工业界「结婚」
  18. php操作redis命令
  19. 连续8年 远见领跑|山石网科入选Gartner 2021网络防火墙魔力象限
  20. Vue-组件嵌套之——父组件向子组件传值

热门文章

  1. C语言编写一个计算器(附全源代码)
  2. java解码acc音频文件_(JAVA)将(acc/m4a)音频转换成Mp3格式
  3. 按键精灵定位坐标循环_按键精灵基础命令教程
  4. Web基础配置篇(九): 抓包工具的介绍、安装及基本使用
  5. matlab 无线仿真教学视频教程,视频教程 | MATLAB 及机电系统仿真
  6. perl语言十分钟入门【零基础可入】
  7. CSDN的积分如何获取(转)
  8. 局域网ftp工具,主要用于局域网简单的ftp上传和下载
  9. prinect pdf toolbox 2021中文版
  10. quartz小案例及相关属性