题解 | #明明的随机数#

明明的随机数

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);
    
    

全部评论

相关推荐

03-02 08:18
集美大学 Java
钱嘛数字而已:没有赛事奖项么?另外,项目经历字有点多哈,建议突出一下重点:用的什么技术,解决什么问题,达到什么效果。
大家都开始春招面试了吗
点赞 评论 收藏
分享
在改简历的大卫很认真:天天有面试 = 你已经在 offer 门口了。 海投能面成这样,说明你的简历、基础、学历都是过关的,缺的只是一次刚好匹配的缘分。 关于你说的 SQL 恐惧,我帮你捋一下: - 面试里考来考去,真就那几类: 分组、去重、关联、子查询、窗口函数(row_number、rank、sum 开窗) ​ - 面试官要的不是“写得花里胡哨”,而是思路稳、不出错。 你恐惧的本质不是不会, 是怕临场卡壳、怕写错、怕被追问。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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