Queue usa elementos de matriz para moverse a la derecha

 

respuesta:

Leí muchas respuestas en Internet y siento que son bastante complicadas y problemáticas. Aquí escribo mis propias ideas (spray de luz de hermano mayor)

Use una cola de dos extremos para almacenar la matriz. Si desea moverse hacia la derecha, simplemente mueva el último bit al primero , mueva algunos bits y realice ciclos varias veces .

código:

#include <bits/stdc++.h>
using namespace std;
int main() {
    deque<int> dp;
    int n, m;
    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        int a;
        cin >> a;
        dp.push_back(a);
    }
    for (int i = 0; i < m; i++) { 
        dp.push_front(dp[dp.size() - 1]); //将最后一位复制到第一位
        dp.pop_back(); //删除最后一位
    }
    for (int i = 0; i < n; i++) {
        printf("%d", dp[i]);
        if (i < n - 1) printf(" ");
    }
    return 0;
}

 

 

Supongo que te gusta

Origin blog.csdn.net/qq_45462923/article/details/113986305
Recomendado
Clasificación