Rumah > Java > javaTutorial > Pertanyaan jumlah julat - Tidak boleh diubah

Pertanyaan jumlah julat - Tidak boleh diubah

Mary-Kate Olsen
Lepaskan: 2025-01-04 02:24:40
asal
594 orang telah melayarinya

Range sum query - Immutable

Masalah

TC: O(n*m) untuk mencipta awalan[][] matriks jumlah, O(baris1 baris2) untuk mengira jumlah segiempat tepat
SC: O(n*m) kerana menggunakan awalan[][] matriks jumlah

class NumMatrix {
    int prefix[][];
    public NumMatrix(int[][] matrix) {
        prefix = new int[matrix.length][matrix[0].length];
        for(int i=0;i<matrix.length;i++){
            int current = 0;
            for(int j = 0;j<matrix[0].length;j++){
                current+=matrix[i][j];
                prefix[i][j] = current;
            }
        }
    }

    public int sumRegion(int row1, int col1, int row2, int col2) {
        int sum =0;
        for(int i =row1;i<=row2;i++){
            int right = prefix[i][col2];
            int left = (col1>0) ? prefix[i][col1-1] : 0;
            sum+=right-left;
        }
        return sum;
    }
}

/**
 * Your NumMatrix object will be instantiated and called as such:
 * NumMatrix obj = new NumMatrix(matrix);
 * int param_1 = obj.sumRegion(row1,col1,row2,col2);
 */
Salin selepas log masuk

Atas ialah kandungan terperinci Pertanyaan jumlah julat - Tidak boleh diubah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan