题解 | 【模板】序列操作

【模板】序列操作

https://www.nowcoder.com/practice/12da4185c0bb45918cfdc3072e544069

#include <iostream>
#include <sys/types.h>
using namespace std;

int main() {
    int N;
    int arr[7001];
    while (cin >> N) { 
    int index = 0;
        while (N--) {
            int choice;
            cin>>choice;
            switch (choice) {
                case 1:{
                    int x;
                    cin>>x;
                    arr[index]=x;
                    index++;
                    break;
                }
                case 2:{
                    if (!index) {
                        break;
                    }
                    else {
                        index--;
                    }
                    break;
                }
                case 3:{
                    int i;
                    cin>>i;
                    cout<<arr[i]<<endl;
                    break;
                }
                case 4:{
                    int i,x;
                    cin>>i>>x;
                    for (int n=index; n>i; n--) {
                        arr[n]=arr[n-1];
                    }
                    arr[i+1] = x;
                    index++;
                    break;
                }
                case 5:{
                    for (int i=0; i<index-1; i++) {
                        bool flag =0;
                        for (int j=index-1; j>0; j--) {
                            if (arr[j]<arr[j-1]) {
                                int temp;
                                temp = arr[j-1];
                                arr[j-1] = arr[j];
                                arr[j] = temp;
                                flag = 1;
                            }
                        }
                        if (!flag) {
                            break;
                        }
                    }
                    break;
                }
                case 6:{
                    for (int i=1; i<index; i++) {
                        int j = i-1;
                        int key = arr[i];
                        while (j>=0 && arr[j]<key) {
                            arr[j+1] = arr[j];
                            j--;
                        }
                        arr[j+1] = key;
                    }
                    break;
                }
                case 7:{
                    cout<<index<<endl;
                    break;
                }
                case 8:{
                    for (int i=0; i<index; i++) {
                        cout<<arr[i]<<' ';
                    }
                    cout<<endl;
                    break;
                }
            }
        }
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务