Given an array of integers, write a method, findSecondHighestNumber, that returns the second highest number in the array.
For example, when the code below is run, we expect to see the answer: 2
public static void main(String[] args) { int[] numbers = new int[]{1,2,3}; int number = findSecondHighestNumber(numbers); System.out.println(number);}
We expect a solution that can handle any length of array from 0 to 100 numbers.
package com.gsr;
public class FindSecondHighestNumber {
public static void main(String[] args) {
int[] numbers = new int[]{1,2,3,-4,5,12, 35, 34, 10, 34, 1};
int number = findSecondHighestNumber(numbers);
System.out.println(number);
}
private static int findSecondHighestNumber(int[] numbers) {
int size = numbers.length ;
int firstlargest = 0 ;
int secondlargest = -1;
if(size == 0) {
System.out.println("Arrays have no elements");
return 0;
} else if(size < 2) {
System.out.println("Arrays have less numbers for compare");
return numbers[size-1];
} else if(size >= 2) {
for (int i = 0; i < size; i++) {
if(numbers[i] > numbers[firstlargest]) {
secondlargest = firstlargest;
firstlargest = i;
} else if (numbers[i] < numbers[firstlargest] && (secondlargest == -1 || numbers[secondlargest] < numbers[i])) {
secondlargest = i;
}
}
}
return numbers[secondlargest];
}
}
Comments
Post a Comment