爪哇 2博客
  爪哇 2博客

爪哇 程序查找数组中的第二大数字

如果您想练习数据结构和算法程序,可以通过 数据结构和算法面试题 .

在这篇文章中,我们将看到如何在数组中查找第二大数字。

问题:

给定一个未排序的数组,您需要在 数组 o(n) 时间复杂度.
例如:

整型 [] arr1 = {7,5,6,1,4,2};
数组中的第二大元素:6

解:

您可以对数组进行排序,然后返回数组中的倒数第二个元素,但这将在 o( 登陆 )  时间,

算法:

  • 用可能的最小值初始化high和secondHighest。
  • 遍历数组。
  • 如果当前元素大于最高元素
    • 分配secondHighest =最高
    • 分配最高= currentElement
  • 否则,如果当前元素大于secondHighest
    • 分配secondHighest =当前元素。

爪哇 程序查找数组中的第二大数字:

创建名为的主要Java类 FindSecondLargestMain.java

FindSecondLargestMain.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
组织 . Arpit . 爪哇 2blog ;
 
上市 FindSecondLargestMain {
     上市 静态的 虚空 主要 ( args [])
    {
         整型 [] arr1={7,5,6,1,4,2};
         整型 第二高=findSecondLargestNumberInTheArray(arr1);
         系统 .. 打印 (“数组中的第二大元素:”+ 第二高);
    }
 
     上市 静态的 整型 findSecondLargestNumberInTheArray( 整型 数组 [])
    {
        //将它们初始化为可能的最小值
         整型 最高 = 整数 . MIN_VALUE ;
         整型 第二高 = 整数 . MIN_VALUE ;
 
        //遍历数组
         对于 ( 整型 i = 0; i < 数组 . 长度 ; i ++ ) {
            //如果当前元素大于最高元素
             如果 ( 数组 [i] > 最高 ) {
 
                //将第二高的元素分配给最高的元素
                第二高 = 最高 ;
 
                //最高元素到当前元素
                 最高 = 数组 [i];
            } 其他 如果 ( 数组 [i] > 第二高 && 数组 [i] != 最高 )
                //仅替换第二高的
                第二高 = 数组 [i];
        }
 
        //退出循环后,secondHighest现在代表第二个
        //数组中的最大值
         返回 第二高;
    }
}
 

当您运行上述程序时,将获得以下输出:

数组中的第二大元素:6

那’关于如何在数组中查找第二大数字的所有内容。


导入联系人

您可能还喜欢:


导入联系人

您可能还喜欢:

分享这个

作者

关注作者

相关文章

  • 3月28日

    对0、1和2的数组进行排序

    如果您想练习数据结构和算法程序,可以阅读100多种数据结构和算法程序。在这篇文章中,我们将看到如何对0、1和2s的数组进行排序。我们已经看到了有关对数组中的0s和1s进行排序的文章。问题给定一个包含零的数组,[…]

  • 3月04

    通过跳转检查是否有可能到达给定数组的末尾

    如果您想练习数据结构和算法程序,可以阅读100多种数据结构和算法程序。问题给定一个具有正整数作为元素的数组,该数组指示可以从数组中任何位置进行跳转的最大长度。检查是否可以[…]

  • 2月17日

    检查数组元素是否连续

    如果您想练习数据结构和算法程序,可以阅读100多种数据结构和算法程序。在这篇文章中,我们将看到如何检查数组元素是否连续。问题给定一个数组,我们需要检查数组是否包含连续的元素。例如:输入:array [] = {5,3,4,[…]

  • 11月1日

    在数组中找到局部最小值

    如果您想练习数据结构和算法程序,可以阅读100多种数据结构和算法程序。在这篇文章中,我们将看到如何在数组中找到局部最小值。问题如果一个元素小于其相邻元素,则它是局部最小值。 整型 [] arr = {10,5,3,[…]

  • 10月22日

    爪哇 中的滑动窗口最大值

    在这篇文章中,我们将看到有关Java问题中滑动窗口最大值的问题给定一个整数数组和一个整数k,请从所有大小为K的连续子数组中找到max的元素。例如:Input:int [] arr = {2 ,6,-1,2,4,1,-6,5} 整型 k = 3输出:[[]的每个子数组分别为6,6,4,4,4,5,5…]

  • 10月20日

    计算排序数组中每个元素的出现次数(或频率)

    如果您想练习数据结构和算法程序,可以阅读100多种数据结构和算法程序。在这篇文章中,我们将看到如何计算已排序数组中每个元素的出现次数(或出现频率)问题给定一个包含重复项的整数排序数组。找出每个[…]

Comments

  1. 嗨,如果一个数组包含重复且恰巧也是最大的元素,则此代码将失败。
    示例:arr [] = {7,8,8,1,4,2}

  2. 如果我们更改else id条件代码,在所有情况下都可以正常工作,
    否则,如果(array [i]> 第二高 &&array [i]!=最高){
    第二高 = 数组 [i];
    }

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

订阅我们的新闻

获取质量教程到您的收件箱。现在订阅。


成为朋友

©2020 爪哇 2博客