zoukankan      html  css  js  c++  java
  • 在O(n)时间复杂度内求无序数组中任意两个元素的最大差值,以及存在的组数

    题目描述:

    求无序数组中任意两个元素的最大差值,以及存在最大差值的组别数.

    输入:

    输入包含两行,第一行输入一个整数n;第二行n个正整数,用空格隔开.

    输出:

    输出为一行,包含最大差值,以及存在组别数.

    样例输入:

    4

    4  1  2  1

    输出:

    3  2

    一种实现代码如下(Java版):

     1 import java.util.Scanner;
     2 /**
     3  * 在O(n)时间复杂度内求无序数组中任意两个元素的最大差值,以及存在的组数
     4  * @author JiaJoa
     5  *
     6  */
     7 public class Main{
     8     public static void main(String args[]){
     9         Scanner cin = new Scanner(System.in);
    10         int n = cin.nextInt();
    11         int[] v = new int[n];
    12         for(int i=0;i<n;i++){
    13          v[i] = cin.nextInt();
    14         }
    15         getResult(n,v);
    16         cin.close();
    17     }
    18         
    19     public static void getResult(int n,int[] b){
    20         int min = Integer.MAX_VALUE;  //记录最小值
    21         int max = Integer.MIN_VALUE;  //记录最大值
    22         int minCount = 0; //记录最小值的个数
    23         int maxCount = 0; //记录最大值的个数
    24         for(int i=0;i<n;i++){
    25             if(b[i]==max){
    26                 maxCount++;
    27             }
    28             if(b[i]>max){
    29                 max = b[i];
    30                 maxCount = 1;
    31             }
    32             
    33             if(b[i]==min){
    34                 minCount++;
    35             }
    36             if(b[i]<min){
    37                 min = b[i];
    38                 minCount = 1;
    39             }
    40         }
    41         
    42         int maxB = max - min;  //数组中两个数的最大差值
    43         int count = maxCount*minCount;  //存在最大差值的组数
    44         
    45         System.out.println(maxB+" "+count);
    46     }
    47 }
  • 相关阅读:
    生活感悟(一)
    DOM数据制作(采用卫星遥感图像数据制作)
    对话框显示前的操作
    sqlHelper中DataReader的关闭问题
    整数的取余运算
    C#中的字符串格式String.Format
    SQL分页查询
    级联删除与更新的例子
    C#中的运算符重载(以重载+为例)
    [高效编程读书笔记]用readonly而不是const
  • 原文地址:https://www.cnblogs.com/JiaJoa/p/7994894.html
Copyright © 2011-2022 走看看