Problem 33

problem.png

public class Q33 {
    public int methodI(int[] arr) {
        int max = Integer.MIN_VALUE;
        for (int value:arr) {
            if (max<value) {
                max = value;
            }
        }
        return max;
    }

    public int methodII(int[] arr) {
        int max = 0;
        boolean first = true;
        for (int value: arr) {
            if (first) {
                max = value;
                first = false;
            }
            else if(max < value) {
                max = value;
            }
        }
        return max;
    }

    public int methodIII(int[] arr) {
        int max = arr[0];
        for (int k = 1; k<arr.length; k++) {
            if (max<arr[k]) {
                max = arr[k];
            }
        }
        return max;
    }
}
public static void main(String[] args) {
    Q33 problem = new Q33();
    int[] arr = {1, 5, 4, 7, 18, 3, 23, 32};
    System.out.println(problem.methodI(arr));
    System.out.println(problem.methodII(arr));
    System.out.println(problem.methodIII(arr));
}
main(null);
32
32
32

Answer

The correct answer is E, Methods I, II, III
answer.png

Popcorn Hacks

Look at each of the 3 methods below. Which ones will successfully calculate the max value? Why do the other methods not work?

public class Q33Hacks {
    public int methodI(int[] arr) {
        int max = Integer.MAX_VALUE;
        for (int value:arr) {
            if (max<value) {
                max = value;
            }
        }
        return max;
    }

    public int methodII(int[] arr) {
        int max = 0;
        for (int value: arr) {
            if (max < value) {
                max = value;
            }
        }
        return max;
    }

    public int methodIII(int[] arr) {
        int max = arr[0];
        for (int k = 1; k>arr.length; k++) {
            if (max<arr[k]) {
                max = arr[k];
            }
        }
        return max;
    }
}