题解 | #明明的随机数#

明明的随机数

https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;

int main() {
    int N=0;
    cin>>N;

    vector<int> ve(N); //注意初始化向量的写法
    for(int i=0;i<N;i++){
        cin>>ve[i];
    }
    //输入的都保存,然后应该要遍历
    sort(ve.begin(),ve.end()); //升序
    cout<<ve[0]<<endl;
    for(int i=1;i<N;i++){  //这里注意不要让i=N,不然就溢出了,最后一个数值是ve[n-1]
        if(ve[i]!=ve[i-1])
            cout<<ve[i]<<endl;
    }

    return 0;
}

还有一种用set的方法可以看下:

#include <iostream>
#include <set>

int main() {
    int N;
    std::cin >> N;

    std::set<int> uniqueNumbers;  //使用 std::set<int> 来存储输入的数字。std::set 会自动去除重复的数字并且保持元素有序。

    for (int i = 0; i < N; ++i) {
        int num;
        std::cin >> num;
        uniqueNumbers.insert(num);
    }

    // 输出集合中的元素
    for (const int& num : uniqueNumbers) {
        std::cout << num << std::endl;
    }

    return 0;
}

另外补充下数组的排序,用sort函数时:

在 C++ 中,数组名可以被视为指向数组第一个元素的指针。因此,对于一个数组 arrarr 本身是一个指向第一个元素的指针。

  1. arr 是指向数组第一个元素的指针。在这个例子中,arr 等价于 &arr[0],即指向数组第一个元素的地址。
  2. arr + n 是指向数组最后一个元素之后的位置的指针。在这个例子中,arr + n 等价于 &arr[n],即指向数组最后一个元素之后的位置的地址。
  3. int arr[] = {5, 2, 9, 1, 5, 6};
    int n = sizeof(arr) / sizeof(arr[0]); 
    //计算数组长度 sizeof(arr)是整个数组 arr 在内存中占用的总字节数。sizeof(arr[0])是数组 arr 中单个元素的字节数。
    
    // 使用 std::sort 对数组进行升序排序
    std::sort(arr, arr + n);
    
    

全部评论

相关推荐

有趣的牛油果开挂了:最近这个阶段收到些杂七杂八的短信是真的烦
点赞 评论 收藏
分享
Noob1024:一笔传三代,人走笔还在
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务