[Likou] 1588. La suma de todos los subarreglos de longitud impar <suma de prefijos>

[Likou] 1588. La suma de todos los subarreglos de longitud impar

Dada una matriz de números enteros positivos, calcule la suma de todos los posibles subarreglos de longitud impar. Una submatriz se define como una subsecuencia continua de la matriz original. Devuelva la suma de todos los subarreglos de longitud impar en arr.

Ejemplo 1:
Entrada: arr = [1,4,2,5,3]
Salida: 58
Explicación: Todos los subarreglos de longitud impar y su suma es:
[1] = 1
[4] = 4
[2] = 2
[ 5] = 5
[3] = 3
[1,4,2] = 7
[4,2,5] = 11
[2,5,3] = 10
[1,4,2,5,3] = 15
us Sumando todo los valores dan 1 + 4 + 2 + 5 + 3 + 7 + 11 + 10 + 15 = 58

Ejemplo 2:
Entrada: arr = [1,2]
Salida: 3
Explicación: Solo hay 2 subarreglos de longitud impar, [1] y [2]. Su suma es 3.

Ejemplo 3:
Entrada: arr = [10,11,12]
Salida: 66

Nombre:
1 <= longitud del arreglo <= 100
1 <= arreglo[i] <= 1000

respuesta

subíndice 0 1 2 3 4 5
matriz original 1 4 2 5 3
suma de prefijo 0 1 5 7 12 15
class Solution {
    
    
    public int sumOddLengthSubarrays(int[] arr) {
    
    
        int[] s = new int[arr.length + 1];

        for (int i = 0; i < arr.length; i++) {
    
    
            s[i + 1] = s[i] + arr[i];
        }

        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
    
    
            for (int length = 1; i + length <= arr.length; length += 2) {
    
    
                int right = i + length ;
                int left = i;
                sum += s[right] - s[left];
            }
        }
        return sum;
    }

    public static void main(String[] args) {
    
    
        Solution solution = new Solution();
        int[] testArry = {
    
    1, 4, 2, 5, 3};
        System.out.println(solution.sumOddLengthSubarrays(testArry));

    }
}

Supongo que te gusta

Origin blog.csdn.net/qq_44033208/article/details/132663546
Recomendado
Clasificación