文章

61

粉丝

137

获赞

18

访问

40.0k

头像
整数去重 题解:注意n的取值范围,时间复杂度不能高于O(nlogn),所以不能直接使用两个for循环,在内层for循环外加一层if判断,跳过一些已经被删除的元素的for循环
P2021
发布于2024年3月26日 15:04
阅读数 538

#include<bits/stdc++.h>
using namespace std;

int main(){
    int n, tmp;
    while(cin >> n){
        int arr[n];
        int judge[n];
        for(int i = 0; i < n; i++){
            cin >> arr[i];
            judge[i] = 1;
        }

        for(int i = 0; i < n-1; i++){
            if(judge[i] == 1){
                for(int j = i+1; j < n; j++){
                    if(arr[j] == arr[i])
                        judge[j] = 0;
                }
            }
        }

        for(int i = 0; i < n; i++){
            if(judge[i] == 1)
                cout << arr[i] << " ";
        }
        cout << endl;
    }

    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发