来源:算法面试题

寒冬来了,多分享一些面试题吧!

点评:此题实质上是二分查找的变形题目。

代码实现

下面是作者用JavaScript实现的代码,仅供参考!(建议大家自己动手实现一

遍)

 1//参数arr,先升序后降序的数组,不能为空 2function getMaxValue(arr) { 3    let len = arr.length; 4    //当只有一个数时,直接返回 5    if(len === 1) return arr[0]; 6    //当数组只有下降部分时,直接返回 7    if(arr[0] > arr[1]) return arr[0]; 8    //当数组只有上升部分时,直接返回 9    if(arr[len - 1] > arr[len - 2]) return arr[len - 1];1011    //接下来处理既有上升部分又有下降部分的数组(这样的数组至少有3个元素)12    let left = 0,13        right = arr.length - 1;14    while(left < right) {15        let mid = Math.floor((left + right) / 2);1617        //判断arr[mid]是否为最大值18        if(mid !== 0 && arr[mid] > arr[mid - 1] && arr[mid] > arr[mid + 1])19            return arr[mid];2021        //当arr[mid]不是最大值时,判断arr[mid]处于数组上升部分还是下降部分22        if(mid === 0 || arr[mid] > arr[mid - 1]) {23            //处于上升部分24            left = mid + 1;25        } else if(arr[mid] < arr[mid - 1]) {26            //处于下降部分27            right = mid - 1;28        }29    }30    return arr[left];31}

·END·

 近期热文:

  • Spring Cloud Stream 学习小清单

  • 我说分布式事务之消息最终一致性事务(一):原理及实现

  • 疑案追踪:Spring Boot内存泄露排查记

  • Spring Cloud Stream 使用延迟消息实现定时任务(RabbitMQ)

  • 了解Java中的内存泄漏

  • Git 常用命令清单,掌握这些,轻松驾驭版本管理

  • 优先级队列(头条面试题)

  • 来谈下高并发和分布式中的幂等处理

  • 你应该知道的7个写出更好的 Java 代码的技巧

  • 百亿数据量下,掌握这些Redis技巧你就能Hold全场

  • 深入聊一聊 Spring AOP 实现机制

  • 不可错过的CMS学习笔记

  • 可能是最全面的G1学习笔记

看完,赶紧点个“好看”鸭

点鸭点鸭

↓↓↓↓

百度面试题:求数组最大值相关推荐

  1. 用递归法求数组最大值

    设a是有n个int类型数据元素的数组,试编写求a中最大值的递归函数 递归!!! 1.确定参数.数组是容器,无疑是第一个参数.我们在数组中不停地寻找最大数,不能避免两数比较,遍历数组确保将数组中每一个数 ...

  2. android 求数组最大值,面试算法知识梳理(7) - 数组第四部分

    面试算法代码知识梳理系列 一.概要 本文介绍了有关数组的算法第四部分的Java代码实现,所有代码均可通过 在线编译器 直接运行,算法目录: 求数组当中的最长递增子序列(求数组当中的最长递减子序列) 区 ...

  3. python求数组最大值_Python算法与数据结构--求所有子数组的和的最大值

    Python算法与数据结构--求所有子数组的和的最大值 玄魂工作室秘书 玄魂工作室 昨天 题目:输入一个整形数组,数组里有正数也有负数.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. ...

  4. JAVA求数组最大值最小值总和均值

    定义一个int型的一维数组,包含10个元素,分别赋一些随机数(两位数字) 求出所有元素的最大值最小值总和均值 public class MaxMinSumMean {public static voi ...

  5. 利用函数(求数组最大值、判断平年闰年、翻转数组、判断是否为素数)

    函数案例 1.利用函数求求两个数的最大值 //利用函数 求两个数的最大值function getMax(num1,num2){//if(num1 > num2){// return num1;/ ...

  6. java求数组的最小值_JAVA编程求数组最大值和最小值

    错在最后两段代码是相同的,写了两个"max",就会得到最大值与最小值是一样的结果. 只需要把最后一个"max"改为"min"就可以了,改了之 ...

  7. c语言求数组最大值最小值泡沫法,C语言选择法排序

    #include int main() { int i, j, p, n, q; int a[] = {, , , , }; //对无序数组进行排序 for(i=; i { p = i; for(j= ...

  8. C++递归求数组最大值、平均值、求和

    一.学习要点 1.相同类型的对象的复制是通过拷贝构造器: 2.初始化成员列表的具体表达方式,第一个是冒号,剩下的都是逗号. 3.强制类型转变,(float); 二.程序代码: 1.有关拷贝构造器的: ...

  9. c语言分治法求数组最大值,使用分治法求最大子数组的下标。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include int max(int a[],int left,int right); int maxcross(int a[],int left,i ...

最新文章

  1. python之commands模块
  2. 火狐浏览器修改userAgent
  3. ZCMU 1048: 子串
  4. docker删除none镜像_Docker容器相关命令
  5. LongAccumulator和DoubleAccumulator类如何工作?
  6. Python3网络爬虫开发实战,使用IP代理爬取微信公众号文章
  7. mysql innodb架构_Mysql Innodb体系结构
  8. [Ext JS 4] 拖放[drag and drop]
  9. 九章算法--寻找数组波峰
  10. Java多线程编程实战指南(核心篇)读书笔记(二)
  11. 用计算机怎么扣税点,2019新个税计算器如何扣个税?
  12. 光模块协议之8436
  13. 互联网历史上50个最重要的时刻
  14. 最先进的实体对齐方法的实验研究综述 An Experimental Study of State-of-the-Art Entity Alignment Approaches
  15. 给tensor增加维度 或 减少维度
  16. MySQL优化器成本记录表
  17. 基于 Apache Kylin 的微博舆情实时分析(内含 Demo)
  18. C++基础-介绍·数据结构·排序·算法
  19. 【MySQL技术内幕】49-事务的实现之group commit
  20. 知识库目录 - 作者:echo

热门文章

  1. linux 自动化交互套件 expect 介绍 shell非交互
  2. python3 获取 文件 文件夹大小
  3. shell获取时间戳
  4. EditPlus正则表达式
  5. 远程线程注入引出的问题
  6. 鸟哥的Linux私房菜(基础学习,服务器架设)
  7. Ubuntu下常用命令
  8. 计算机对英语口语考试,计算机辅助高考英语口语考试中题型的设计与交际能力的实现.pdf...
  9. 证书到期了_注意!出口沙特所有扁钢制品证书将于8月26日到期 ,需要强制QM
  10. int p 和int p