📌  相关文章
📜  教资会网络 | UGC NET CS 2017 年一月至三日 |问题 35(1)

📅  最后修改于: 2023-12-03 15:10:15.730000             🧑  作者: Mango

教资会网络 | UGC NET CS 2017 年一月至三日 | 问题 35

介绍

教资会网络 (UGC NET) 是一个印度国家水平的考试,由教资会主管,目的是选择出适合从事印度学术研究和教学的个人。UGC NET 考试包含许多主题,其中包括计算机科学考试。2017 年一月至三日的 UGC NET CS 考试的问题 35 将与编程有关。

问题 35 要求编写 Java 程序,该程序将非负整数列表作为其输入,并输出第二个最小值。如果无法找到第二个最小值,则输出-1。

做法

我们可以使用 Java 语言来编写这个程序。Java 提供了许多内置函数和数据结构,可以方便地处理列表和数字的操作。

首先,我们需要从输入中读取列表。Java 有一个称为 Scanner 的类,它可以帮助我们从标准输入中读取数据。以下是一个示例代码片段:

import java.util.Scanner;

public class SecondMinimum {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }
    }
}

接下来,我们需要查找第二个最小值。我们可以使用两个变量来保存最小值和第二个最小值。遍历列表,并将每个元素与当前最小值和第二个最小值进行比较。如果元素是比当前最小值更小的最小值,则将当前最小值设置为该元素。如果元素比当前第二个最小值更小,则将当前第二个最小值设置为该元素。以下是一个示例代码片段:

import java.util.Scanner;

public class SecondMinimum {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }

        int min = Integer.MAX_VALUE;
        int secondMin = Integer.MAX_VALUE;

        for (int i = 0; i < n; i++) {
            if (arr[i] < min) {
                secondMin = min;
                min = arr[i];
            } else if (arr[i] < secondMin && arr[i] != min) {
                secondMin = arr[i];
            }
        }

        if (secondMin == Integer.MAX_VALUE) {
            System.out.println("-1");
        } else {
            System.out.println(secondMin);
        }
    }
}
总结

通过上述的步骤,我们就完成了一个 Java 程序,可以找出输入的非负整数列表的第二个最小值。这个程序使用了 Java 的 Scanner 类读取输入,并使用了一个 for 循环来查找第二个最小值。