1. 程式人生 > >陣列a,長度為n(索引為0至n-1)。現要求更新陣列的各個元素,使新陣列的第i個元素等於原陣列中除第i個元素之外各元素之積

陣列a,長度為n(索引為0至n-1)。現要求更新陣列的各個元素,使新陣列的第i個元素等於原陣列中除第i個元素之外各元素之積

public static void sorttt(int[] a) {
        int length = a.length;
        int[] b = new int[length];
        b[0] = 1;
        for (int i = 1; i < length; i++) {
            b[0] = b[0] * a[i - 1];
            b[i] = b[0];
        }

        b[0] = 1;

        for (int j = length - 2; j > 0; j--) {
            b[0
] = b[0] * a[j + 1]; b[j] = b[j] * b[0]; } b[0] = b[0] * a[1]; }

node:
1、b就為最後生成的陣列,可以把b陣列當成輔助陣列。
2、主要策略是可以把乘積分為前半部分*後半部分。用遞迴的形式實現