zoukankan      html  css  js  c++  java
  • 【题解】LuoguP1059明明的随机数

    STL的sort+unique做法

    unique是个去重函数,其实是把重复的元素放在数组后边。代码如下:

    #include <bits/stdc++.h>
    using namespace std;
    int a[100];
    int main(){
        int len;
        cin >> len;
        for(int i = 0;i < len;i ++)cin >> a[i];
        sort(a,a+len); //记住!先 排 序
        len = unique(a,a+len) - a; //如果你想得到前几个去重后的元素,你就得这么写
        cout << len << endl;
        for(int i = 0;i < len;i ++)cout << a[i] << ' ';
    }
    

    压行版本:

    #include <bits/stdc++.h>
    int a[100],en;
    int main(){
        std::cin >> len;
        for(int i = 0;i < len;i ++)std::cin >> a[i];
        std::sort(a,a+len); //记住!先 排 序
        len = std::unique(a,a+len) - a; //如果你想得到前几个去重后的元素,你就得这么写
        std::cout << len << std::endl;
        for(int i = 0;i < len;i ++)std::cout << a[i] << ' ';
    }
    

    除了考试;死也不写return0;


    D语言做法

    D语言做法就是个正常做法了,代码如下:

    import std.stdio;
    void shell_sort(int[] arr, int len) {//这是我自己写的一个Shell排序
        int gap, i, j;
        int temp;
        for (gap = len >> 1; gap > 0; gap = gap >> 1)
            for (i = gap; i < len; i++) {
                temp = arr[i];
                for (j = i - gap; j >= 0 && arr[j] > temp; j -= gap)
                    arr[j + gap] = arr[j];
                arr[j + gap] = temp;
            }
    }
    
    int[100] a = [100,100,100,345,11,12350,23];
    int main(string[] args){
        int n;int c;
        readf("%d",&n);
        for (int i = 0 ; o < n;i ++)   readf("%d",&a[i]);
        shell_sort(a,8);
        for(int i = 1;i < n;i ++){
            c = a[i];
            if(!i)write(a[i]," ");
            else if(c != a[i-1])write(a[i]," ");
            else ++i;
        }
        return 0;
    }
    
  • 相关阅读:
    JavaScript函数
    JavaScript数组知识点
    面向对象之继承及属性查找顺序
    面向对象二
    面向对象
    正则表达式补充
    垃圾回收机制、标记删除及分代回收
    hashlib、hmac、subprocess、configparser模块
    模块、起别名、from导入
    递归、匿名函数、内置函数
  • 原文地址:https://www.cnblogs.com/sdltf/p/12610362.html
Copyright © 2011-2022 走看看