题目:
以时间复杂度 O(n) 从长度为 n 的数组中找出同时满足下面两个条件的所有元素:
(1)该元素比放在它前面的所有元素都大;
(2)该元素比放在它后面的所有元素都小。

分析:
面试官给的上面冗余的描述,其实一句话即可说明,即 以时间复杂度 O(n) 从长度为n的数组中找出所有比左边大比右边的小的元素

一开始求出所有元素右边最小数,存放到一个数组 rightMin 中,然后从左往右判断当前元素是否大于左边所有元素,如果是则和其右边最小数(存放于最小数组 rightMin)比较,如果小于,则找到了满足条件的元素。

注意: 左右两边第一个数不满足条件。

实现:

#include <iostream>
using namespace std;void printPivotElements(int data[], int len) {// 从右往左,寻找每个位置及其之后的最小数int* rightMin = new int[len];int rMin = data[len - 1];for (int i = len - 1; i >= 0; --i) {if (data[i]<rMin) rMin = data[i];rightMin[i] = rMin;}// 从左往右,寻找比左边大且比右边小的数int max = data[0];for (int i = 1; i < len - 1; ++i) {if (data[i] > max) {max = data[i];if (data[i] < rightMin[i+1]) cout << data[i] << endl;}}
}int main() {int iTestArray[] = { 1,8,6,9,10,15,12,20 };printPivotElements(iTestArray, sizeof(iTestArray) / sizeof(iTestArray[0]));
}

输出:

9
10

2018腾讯内部转岗面试题3——找出数组中比左边大比右边的小的元素相关推荐

  1. 剑指offer 面试题三 找出数组中重复的数字

    1 import org.junit.Test; 2 3 import java.util.Arrays; 4 import java.util.HashSet; 5 6 public class D ...

  2. 图解面试题:找出数组中重复的数字?

    今天分享的题目来源于 LeetCode 上的剑指 Offer 系列 面试题03. 数组中重复的数字. 题目链接:https://leetcode-cn.com/problems/shu-zu-zhon ...

  3. 2018 腾讯内部转岗面试题 1 —— 不用 sizeof 判断操作系统是 32 还是 64 位

    文章目录 前言 题目 解法一:最大值溢出 解法二:__WORDSIZE 解法三:指针变量位宽 参考文献 前言 2018 上半年折腾了一回,想换个后台开发岗尝试锻炼一下自己,面了三个部门,将有关有意思的 ...

  4. 2018腾讯内部转岗面试题2——打印A-Z 26个字母的所有子集

    题目: 有一个集合由A-Z这26个字母组成,打印这个集合的所有子集,每个子集一行,使用C/C++实现,不要使用递归. 分析: 该题可参见著作<编程之法:面试和算法心得>.26个大写字母,乍 ...

  5. 微策略2011校园招聘笔试题(找出数组中两个只出现一次的数字)

    1.8*8的棋盘上面放着64个不同价值的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0),一个人初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,结束位置在棋盘的右下 ...

  6. 数据结构 2018统考题【找出数组中未出现的最小正整数】

    王道论坛课本

  7. 121. 买卖股票的最佳时机_面试题63. 股票的最大利润_[找出数组中一个元素和它后面最大的元素的差值]

    描述 Say you have an array for which the ith element is the price of a given stock on day i. If you we ...

  8. 【408计算机考研】|【2018统考真题-41】| 给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数

    目录 一.题目 二.解答 三.测试数据 一.题目   给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算 法,找出数组中未出现的最小正整数.例如,数组{-5, 3, 2, 3}中未 ...

  9. 两个数组中对应的下标的值合成一个新的数组_剑指 offer 面试题精选图解 03 . 数组中重复的数字

    今天分享的题目来源于 LeetCode 上的剑指 Offer 系列 面试题03. 数组中重复的数字. 题目链接:https://leetcode-cn.com/problems/shu-zu-zhon ...

最新文章

  1. 干货|10 张 GIF 动图让你弄懂基础算法必备概念
  2. 计算机应用基础试题事业单位,机关事业单位技术工人计算机应用基础知识复习题...
  3. Numpy 生成随机数和乱序
  4. the NTP socket is in use, exiting
  5. java定义private_java9开始——接口中可以定义private私有方法
  6. OpenShift 4 之Istio-Tutorial (6) 服务恢复能力(重试、超时、断路器)
  7. X86汇编语言从实模式到保护模式10:进入保护模式
  8. Hibernate中createCriteria即QBC查询的详细用法
  9. layui登录源码_基于springboot+thymeleaf+mysql+layui实现的论坛系统
  10. 机器学习04:利用朴素贝叶斯分类器判别网络评论的情绪好坏(航空公司数据集)
  11. 微软成为雅虎财经2021年年度最佳公司
  12. 公共数据库介绍~OECD经合组织数据库
  13. 居然有人能把5G解释的这么清楚
  14. OTA前装搭载率逼近50%,哪些供应商正在领跑细分赛道
  15. 【java】高尔顿瓶
  16. CentOS 7 安装好后,无法使用小键盘的解决办法
  17. 【渝粤题库】陕西师范大学164103 网络贸易 作业 (高起专)
  18. 双壳层膦酰基修饰二氧化硅磁性微球/氮氧自由基接枝/表面KH-550改性二氧化硅微球的研究
  19. 什么是百度信息流广告?
  20. 2022年华为杯中国研究生数学建模竞赛D题思路

热门文章

  1. 移动互联网新协议 GTP 中被曝多个高危漏洞,影响4G和5G 用户
  2. VMware Cloud Director 被曝严重漏洞,可导致黑客接管企业服务器
  3. promise常见错误
  4. Java日志组件间关系
  5. 使用redis解决并发操作问题
  6. PHP关闭$_ENV后获取服务器参数的办法
  7. msyql 1062
  8. Visual Studio 2015编译wxWidgets
  9. linux清理内存的命令
  10. linux进程控制-exit()