Untitled
unknown
java
3 years ago
3.3 kB
5
Indexable
import java.util.*; public class Main { public static int[] toIntArray(String str) { Scanner scanner = new Scanner(str); scanner.useLocale(Locale.ROOT); scanner.useDelimiter("(\\s|[,;])+"); List<Integer> list = new ArrayList<>(); while (scanner.hasNext()) { list.add(scanner.nextInt()); } // из List<Integer> можно получить Integer[] Integer[] arr = list.toArray(new Integer[0]); // Integer[] -> int[] int[] result = new int[arr.length]; for (int i = 0; i < arr.length; i++) { // автоматическая распаковка из объекта result[i] = arr[i]; } return result; } public static int[] readIntArrayFromConsole() { Scanner scanner = new Scanner(System.in); while (true) { try { System.out.println("Введите массив: "); String line = scanner.nextLine(); return toIntArray(line); } catch (Exception e) { System.out.print("Вы ошиблись, попробуйте еще раз! "); } } } // %s - строка %d - целое число %n - новая строка public static void tests() { int[] input1 = new int[]{ 1, 6, 3, 7, 7, 2, -5, 8 }; System.out.printf("%s -> %d. %n", Arrays.toString(input1), solution(input1)); int[] input2 = new int[]{ 1, 2, 3, 4, 5 }; System.out.printf("%s -> %d. %n", Arrays.toString(input2), solution(input2)); int[] input3 = new int[]{ 5, 5, 5, 5, 5 }; System.out.printf("%s -> %d. %n", Arrays.toString(input3), solution(input3)); int[] input4 = new int[]{ -5, -5, -5, -5, -5 }; System.out.printf("%s -> %d. %n", Arrays.toString(input4), solution(input4)); int[] input5 = new int[]{ 100, -5, 105, 1115, 125 }; System.out.printf("%s -> %d. %n", Arrays.toString(input5), solution(input5)); int[] input6 = new int[]{ -10, -5, -6, -8, 0 }; System.out.printf("%s -> %d. %n", Arrays.toString(input6), solution(input6)); int[] input7 = new int[]{ 0, 0, 0, 0, 0 }; System.out.printf("%s -> %d. %n", Arrays.toString(input7), solution(input7)); } public static int solution(int[] array) { int minimum = array[0]; int secondMinimum = array[0]; for (int current : array) { if (current < minimum) { secondMinimum = minimum; minimum = current; } else if (minimum == secondMinimum || (current < secondMinimum && current != minimum)) { secondMinimum = current; } } if (secondMinimum != minimum) { return secondMinimum; } return -1; } public static void main(String[] args) { tests(); int[] input = readIntArrayFromConsole(); System.out.println("Ответ: " + solution(input)); } }
Editor is loading...