The challenge#

Make two functions, `max` and `min` that take a(n) array/vector of integers `list` as input and outputs, respectively, the largest and lowest number in that array/vector.

Examples#

``````max({4,6,2,1,9,63,-134,566}) returns 566
min({-52, 56, 30, 29, -54, 0, -110}) returns -110
max({5}) returns 5
min({42, 54, 65, 87, 0}) returns 0
``````

• You may consider that there will not be any empty arrays/vectors.

The solution in Java code#

Option 1:

``````public class Solution {

public int min(int[] list) {
java.util.Arrays.sort(list);
return list[0];
}

public int max(int[] list) {
java.util.Arrays.sort(list);
return list[list.length-1];
}
}
``````

Option 2:

``````import java.util.Arrays;

public class Solution {

public int min(int[] list) {
return Arrays.stream(list).min().getAsInt();
}

public int max(int[] list) {
return Arrays.stream(list).max().getAsInt();
}
}
``````

Option 3:

``````public class Solution {

public int min(int[] list) {
int min = list[0];
for (int number : list) {
if (number < min) {
min = number;
}
}
return min;
}

public int max(int[] list) {
int max = list[0];
for (int number : list) {
if (number > max) {
max = number;
}
}
return max;
}
}
``````

Test cases to validate our solution#

``````import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

import org.junit.Test;
import static org.junit.Assert.assertEquals;
import org.junit.runners.JUnit4;

public class SolutionTest {

private Solution solution = new Solution();
private Random rand = new Random();

@Test
public void fixedMin()
{
assertEquals(-110, solution.min(new int[]{-52, 56, 30, 29, -54, 0, -110}));
assertEquals(0, solution.min(new int[]{42, 54, 65, 87, 0}));
assertEquals(1, solution.min(new int[]{1, 2, 3, 4, 5, 10}));
assertEquals(-10, solution.min(new int[]{-1, -2, -3, -4, -5, -10}));
}

@Test
public void fixedMax()
{
assertEquals(56, solution.max(new int[]{-52, 56, 30, 29, -54, 0, -110}));
assertEquals(566, solution.max(new int[]{4,6,2,1,9,63,-134,566}));
assertEquals(5, solution.max(new int[]{5}));
assertEquals(555, solution.max(new int[]{534,43,2,1,3,4,5,5,443,443,555,555}));
}

@Test
public void randomTests()
{
for(int i = 0; i < 10; i++)
{
int randLng = 2 + (rand.nextInt(14) % 15);
List<Integer> randList = new ArrayList<>();

for(int l = 0;  l < randLng; l++)
{