使用一个额外数组记录每个数后面的最小值是多少,一个额外数组记录一个数前面的最大值是多少,当然,为了减少空间复杂度,可以使用一个数字记录一个数字前面最大值是多少。算法如下:

public List<Integer> findMidNum(int []num)
{
List<Integer>result=new ArrayList();
int[]min=new int[num.length];
min[num.length-]=num[num.length-]; for(int i=num.length-;i>=;i--)
{
min[i]=(min[i+]>num[i])?num[i]:min[i+];
}
if(num[]<=min[])
{
result.add(num[]);
} int max=num[];
for(int i=;i<=num.length-;i++)
{
max=(max>num[i])?max:num[i];
if(num[i]>=max && num[i]<=min[i])
{
result.add(num[i]); }
} if(num[num.length-]>=max)
{
result.add(num[num.length-]);
} return result;
}

随意给一组数,找出满足一下条件的a[i],a[i]左边的数小于等于a[i],a[i]右边的数大于等于a[i]的更多相关文章

  1. 用JAVA写一个函数,功能例如以下: 随意给定一组数, 找出随意数相加之后的结果为35(随意设定)的情况

    用JAVA写一个函数.功能例如以下:随意给定一组数,比如{12,60,-8,99,15,35,17,18},找出随意数相加之后的结果为35(随意设定)的情况. 能够递归算法来解: package te ...

  2. 4 丑数 Ⅱ-找出第n个丑数

    原题网址:http://www.lintcode.com/zh-cn/problem/ugly-number-ii/ 设计一个算法,找出只含素因子2,3,5 的第 n 小的数. 符合条件的数如:1, ...

  3. 给定一个整数N,找出一个比N大且最接近N,但二进制权值与该整数相同 的数

    1,问题描述 给定一个整数N,该整数的二进制权值定义如下:将该整数N转化成二进制表示法,其中 1 的个数即为它的二进制权值. 比如:十进制数1717 的二进制表示为:0000 0110 1011 01 ...

  4. 编写一个小程序,从标准输入读入一系列string对象,寻找连续重复出现的单词。程序应该找出满足一下条件的单词:该单词的后面紧接着再次出现自己本身。跟踪重复次数最多的单词及其重复次数,输出.

    // test13.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...

  5. LeetCode——Single Number II(找出数组中只出现一次的数2)

    问题: Given an array of integers, every element appears three times except for one. Find that single o ...

  6. 找出数组中求和等于y的所有子数组

    算法记录: 给定一个数组x,每个元素都是正整数,找出其中满足条件"求和等于y"的所有子数组.(简化问题,每个元素都不相等) x=[x1,...,xn],暴力搜索,复杂度O(2^n) ...

  7. 基于visual Studio2013解决面试题之0608找出两个只出现一次的数

     题目

  8. 从一组数找第K大元素

    最近做面试题,经常与到一个问题,如何高效的从一组数中找到第K大的元素. 其实我们最容易想到的肯定是蛮力法. 1. 我们可以对这个乱序数组按照从大到小先行排序,然后取出前k大,总的时间复杂度为O(n*l ...

  9. 用C#写一个函数,在一个数组中找出随意几个值相加等于一个值 与迭代器对比

    算法!用C#写一个函数,在一个数组中找出随意几个值相加等于一个值比如,数组{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}  要找出那些数相加等 ...

随机推荐

  1. ubuntu16.04下安装artoolkit5

    目前对AR技术的常见理解就是CV(Computer Vision)+CG(Computer Graphic).CV的方法很多,简单些比如FREAK+ICP(ARToolKit中的NFT),复杂些就是S ...

  2. MapReduce计算之——hadoop中的Hello World

    1.  启动集群 2.  创建input路径(有关hadoop 的命令用 "hadoop fs"),input路径并不能在系统中查找到,可以使用 “hadoop fs -ls /” ...

  3. 【转】(翻译)从底层了解ASP.NET体系结构

    原文地址:http://www.cnblogs.com/rijing2004/archive/2007/09/14/howaspnetwork.html 前言关于ASP.NET的底层的工作机制,最近园 ...

  4. hihocoder 1330 - 数组重排 - [hiho一下167周][最小公倍数]

    题目链接:https://hihocoder.com/problemset/problem/1330 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi想知道,如果他 ...

  5. 希尔排序之python

    希尔排序( Shell sort) 插入排序的改进版本,其核心思想是将原数据集合分割成若干个子序列,然后再对子序列分别进行直接插入排序,使子序列基本有序,最后再对全体记录进行一次直接插入排序. 我的面 ...

  6. c# 实现ListView的排序

    [问题描述]: 当点击列标题的时候,能够完成对该列排序,同时显示排序的箭头,再次点击,按照反序排序. [解决方法]: 1.创建一个类:ListViewColumnSorter继承IComparer接口 ...

  7. mybatis之入门

    一.mybatis介绍 是apache旗下的一个开源的顶级ORM框架(做dao层的操作) 开始叫ibatis在2010年经过升级后发布到google code上就改名为mybatis 定位:1.是一个 ...

  8. 【Pyton】【小甲鱼】永久存储:腌制一缸美味的泡菜

    pickle(泡菜): picking:将对象转换为二进制 unpicking:将二进制转换为对象 1 >>> import pickle 2 #picking:对象导入到文件中(二 ...

  9. ubuntu 安装ftp nginx tomcat,mysql

    tomcat sudo apt-get install tomcat 访问方式,http://loclahost:8080 进入sbin目录下 sudo ./startup.sh开启 sudo ./s ...

  10. 如何正确的把 Java 数组 Array 转为列表 List

    最近想把 java 数组转成 List,网上普遍的答案都是 Arrays.asList: String[] a = new String[] {"hello", "wor ...