Saltar al contenido

Verifique si los elementos de la matriz se pueden hacer secuencialmente realizando ciertas operaciones

<script>

    

    

    

    const ispossible = (arr, n) => {

        

        

        

        let possibility1 = new Array(n).fill(0);

        for (let i = 0; i < n; i++)

            possibility1[i] = i + arr[0];

        

        

        

        let possibility2 = new Array(n).fill(0);

        for (let i = 0; i < n; i++)

            possibility2[i] = i + arr[0] + 1;

        

        

        

        let possibility3 = new Array(n);

        for (let i = 0; i < n; i++)

            possibility3[i] = i + arr[0] - 1;

        

        

        

        

        

        

        

        let canposs1 = true, canposs2 = true;

        let canposs3 = true;

        

        

        for (let i = 0; i < n; i++) {

            if (Math.abs(possibility1[i] - arr[i]) > 1) {

                canposs1 = false;

                break;

            }

        }

        

        

        for (let i = 0; i < n; i++) {

            if (Math.abs(possibility2[i] - arr[i]) > 1) {

                canposs2 = false;

                break;

            }

        }

        

        

        for (let i = 0; i < n; i++) {

            if (Math.abs(possibility3[i] - arr[i]) > 1) {

                canposs3 = false;

                break;

            }

        }

        

        

        if (canposs1 || canposs2 || canposs3) {

            return true;

        }

        return false;

    }

    

    let N = 4;

    let arr = [1, 2, 3, 7];

    

    if (ispossible(arr, N)) {

        document.write("YES");

    }

    else {

        document.write("NO");

    }

</script>