public class Exercise6 { public static void main(String[] args) { // test calls here } public static int maximumPosition1(int[] a) { int m = 0; int n = a.length; for (int i = 0; i < n; i++) { if (a[i] > a[m]) m = i; } return m; } public static int maximumPosition2(int[] a) { if (a == null) return -1; int m = 0; int n = a.length; for (int i = 0; i < n; i++) { if (a[i] > a[m]) m = i; } return m; } public static int maximumElement(int[] a) { int m = 0; int n = a.length; for (int i = 0; i < n; i++) { if (a[i] > m) m = a[i]; } return m; } public static int[] insert(int[] a, int p, int n, int x) { int m = a.length; int[] b = new int[m+n]; for (int i = 0; i <= p; i++) b[i] = a[i]; for (int i = 0; i < n; i++) b[p+i] = x; for (int i = p; i < m; i++) b[n+i] = a[i]; return b; } public static int[] remove(char[] a, char x) { int n = a.length; int c = 0; for (int i = 0; i < n; i++) { if (a[i] == x) c = c+1; } int[] b = new int[n-c]; int p = 0; for (int i = 0; i < n; i++) { if (a[i] != x) { b[p] = a[i]; p = p+1; } } return b; } public static boolean substitute(int[] a, int[] p, int[] x) { boolean invalid = false; int n = p.length; for (int i = 0; i < n; i++) { int p0 = p[i]; if (0 <= p0 && p0 < a.length) a[p0] = x[i]; else invalid = true; } return invalid; } public static class InvalidArgument extends Exception { public int pos; public InvalidArgument(int pos) { this.pos = pos; } } public static void substitute2(int[] a, int[] p, int[] x) throws InvalidArgument { int n = p.length; for (int i = 0; i < n; i++) { int p0 = p[i]; if (p0 < 0 || p0 >= a.length) throw new InvalidArgument(p0); a[p0] = x[i]; } } }