Scan the array once, keeping the largest value seen so far. The replay highlights when a candidate replaces the running maximum.

Algorithm

Basic Implementation

Basic.java
public class Basic {
    public static void main(String[] args) {
        int[] arr = {3, 1, 4, 1, 5, 9, 2, 6};
        int best = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] > best) {
                best = arr[i];
            }
        }
        System.out.println(best);
    }
}

Complexity

  • Time: O(n)
  • Space: O(1)

Implementation notes

  • Java stores the input as a primitive int[], so each arr[i] read copies an int value out of the array slot rather than returning an object reference.
  • best is seeded from arr[0], then an index loop starts at i = 1 and runs while i < arr.length. Those loop bounds keep every indexed read inside the array's checked range.
  • The update is a direct primitive comparison: when arr[i] > best, the local best variable is overwritten with that value; otherwise the array and best stay unchanged.
  • The replay exposes the scan state as i, arr[i], best, and a replaced flag, with replacements at values 4, 5, and 9. Aside from the initial array allocation, the scan uses local primitives and does not create GC pressure.
execution replay The checked-in replay follows the language-neutral state table for `array-find-max`.
cross-language comparison This Java DSA version keeps the same data and final output as every other DSA book in this wave.