2844. 排序去重

SmallY

翻了翻评论区居然没有桶排序的,不了解一下吗

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char sort;
    int nums[1001];
    int i = 0;
    for(i = 0; i <= 1000 ; ++i)
        nums[i] = 0;
    while((scanf("%c", &sort)) != EOF){
        while((scanf("%d" , &i)) != EOF){
            nums[i]++;
        }
    }
    if(sort == 'A'){
        for(i = 0; i <= 1000 ; ++i)
            if(nums[i] > 0)
                printf("%d ", i);
    }
    else{
        for(i = 1000; i > 0 ; --i)
            if(nums[i] > 0)
                printf("%d ", i);
    }
        printf("\n");
}
10162100310

所以怎么判断已经读完了。。。

10185101178

首先在最后一行结束后(此时未换行)输入ENTER键,新起一行,再输入ctrl+z,再输入时ENTER键即可。

╮ 潜心 ╰

个人认为比较标准的做法:(C++)
利用set有序和不重复的特点存储 降序输出时反向迭代即可
直接上代码 又是看不到头文件系列.jpg 求zyg早日完善:)
#include
using namespace std;

int main() {
    int temp;
    char c;
    set<int> s;
    cin >> c;
    while (cin >> temp)
        s.insert(temp);
    auto i1 = s.begin();
    auto i2 = s.rbegin();
    if (c == 'A'){
        cout << *(i1++);
        while (i1 != s.end())
            cout << ' ' << *(i1++);
    }
    else {
        cout << *(i2++);
        while (i2 != s.rend())
            cout << ' ' << *(i2++);
    }
    return 0;
}
Fifnmar

用 set 效率低于先入再排序

linxuesong1993

怎样双空格或者双回车结束 求指导

beginning.

读取到EOF。。。
不然什么时候是个头啊/捂脸

cfhaiteeh

这题跟空格不相关把、、、、

Ibrahimović

怎么删除重复的数据啊?0.0

一剑无痕雪满山

2844
学习惹2333

10152130146

“换行符”有什么玄机
好像不能用gets然后再拆分
输入数据可以有换行但是是以回车结束?
CR LF?????
[em:05][em:05]

Canis

这个用桶排序最简单嘛

LzQuarter

用sort函数时自定义函数内部注意最好是>或者<进行判定,小心使用<=以及>=。

丽娃小萌新

include

include

include

include

include

include

include

include

using namespace std;
int main()
{
set st;
char ch = getchar();
int num;
while (cin >> num)
{
st.insert(num);
}
if (ch == ‘D’)
{
set::iterator it = st.end();
for (it–; it != st.begin(); it–)
{
cout << it << ” “;
}
cout <<
it–;
}
else
{
for (set::iterator it = st.begin(); it != st.end(); it++)
{
cout << *it << ” “;
}
}
cout << endl;
return 0;
}

Fifnmar

快乐压行选手

#include <algorithm>
#include <cstdio>
#include <functional>
#include <vector>
using namespace std;
int main() {
    char way;
    scanf("%c", &way);
    vector<unsigned> nums;
    for (int temp; scanf("%u", &temp) != EOF; nums.push_back(temp))
        ;
    if (way == 'A')
        sort(nums.begin(), nums.end());
    else
        sort(nums.rbegin(), nums.rend());
    auto ed = unique(nums.begin(), nums.end());
    printf("%u", nums.front());
    for (auto i = nums.begin() + 1; i != ed; ++i)
        printf(" %u", *i);
}
你当前正在回复 博客/题目
存在问题!