欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

面试--输入一堆随机数(0-1000),这里面会有重复的数字,把他们去除掉。然后由大到小排列。

发布时间:2023/11/30 编程问答 74 豆豆
生活随笔 收集整理的这篇文章主要介绍了 面试--输入一堆随机数(0-1000),这里面会有重复的数字,把他们去除掉。然后由大到小排列。 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1.问题说明

11 10 20 40 32 67 40 20 89 300 400 15 10 15 20//只显示1次 32 40//只显示1次 67 89 300 400

正常的算法:

1.遍历所有数组,去除掉重复的数字
2.使用XX排序法,进行数字的排序。

眼前一亮的机器算法

1.生成1-1000的数组,全部给0
2.输入,或生成随机数,将随机数的数字所对应的数组值置1
输入数字 15,则a[15] = 1;
3.遍历所有数组,如果a[i]>0,则输出i。

#include<iostream> using namespace std;int main() {int i, k, N, L;int a, Hash[1001];while (cin >> N){/*初始化1000个数组*/for (i = 0; i<1001; i++)Hash[i] = 0;/*输入排列的数组,将这个数字的地方置1*/for (i = 0; i<N; i++){cin >> a;Hash[a]++;}/*遍历1000个数组 如果这个地方是大于1就打印*/for (i = 0; i<1001; i++)if (Hash[i]>0)cout << i << endl;}return(0); }

扩展

int main() {int arr[100], sum = 0;char c;int x = 4;while (x--){cin >> c;arr[c] = 1;}for (int i = 0; i < 100; i++)if (arr[i] == 1)sum++;cout << sum;system("pause"); }

总结

以上是生活随笔为你收集整理的面试--输入一堆随机数(0-1000),这里面会有重复的数字,把他们去除掉。然后由大到小排列。的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。