2014华为机试题——取出整型数据中出现次数最多的元素,并按照升序排列返回
来源:互联网 发布:php api接口开发 框架 编辑:程序博客网 时间:2024/05/22 13:38
// 取出整型数据中出现次数最多的元素,并按照升序排列返回。// 要求实现方法: // public static int[] calcTimes(int[] num, int len);// 【输入】 num:整型数组;// len 输入的整数个数// 【返回】 按照升序排列返回整型数组中出现次数最多的元素// 【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出// 示例 // 输入:num = {1,1,3,4,4,4,9,9,9,10} len = 10// 返回:{4,9}#include <IOSTREAM>#include <QUEUE>#include <algorithm>using namespace std;int compare(const void *p, const void *q){return *(const int *)p - *(const int *)q;}queue<int> calcTimes(int arr[], int len){queue<int> myQueue;qsort(arr, len, sizeof(int), compare);int maxTime = 0; //最多元素出现的次数int oneTime = 1; //单次中数字出现的次数,注意每次初始值为1for (int i=0; i<len-1; ++i){if (arr[i] ==arr[i+1])++oneTime;else{if (oneTime == maxTime){myQueue.push(arr[i]);}else if (oneTime > maxTime){while (!myQueue.empty()){myQueue.pop();}myQueue.push(arr[i]);maxTime = oneTime;}oneTime = 1;}}//end for//对最后一个元素要特殊处理if (maxTime <= 1){//当出现的元素次数最多为1时,要把最后一个放入myQueue.push(arr[i]);}return myQueue;}int main(){int arr[20] = {1,4,9,1,9,3,4,4,9,10}; //结果为:4 9//int arr[20] = {1,3,5,8,29,33,9,13,18,4}; 结果为: 1 3 4 5 8 9 13 18 29 33int len = 10;queue<int> que(calcTimes(arr, len));while (!que.empty()){cout << que.front() << " ";que.pop();}return 0;}
0 0
- 2014华为机试题——取出整型数据中出现次数最多的元素,并按照升序排列返回
- 2014华为机试——按照升序排列返回整型数组中包含指定整数的元素
- 取出整型数据中存在指定整数的数据,并按照升序排列返回
- 华为机试—整型数组中出现次数最多的元素
- 华为机试—整型数组中出现次数最多的元素
- 整型数组中出现次数最多的元素
- 华为机试题:输入整型数组和排序标识,对其元素按照升序或降序进行排序
- 统计数组中出现次数最多的元素并输出
- 华为机试——字符串中出现次数最多的子串
- 华为OJ——输入整型数组和排序标识,对其元素按照升序或降序进行排序
- 华为OJ——输入整型数组和排序标识,对其元素按照升序或降序进行排序
- python字典分别按照key和value升序或者降序排列--以给定一个含有重复元素的数组list,按照其出现次数大小降序输出
- 找出整型数组中重复次数最多的元素
- 去除数组中重复项,并统计重复出现次数最多的元素及重复次数
- JS 字符串中字符出现次数最多的字母 ,并返回次数
- c#面试题 查找整型数组中重复出现次数最多的数字,次数相同数字按从小到大排序
- 华为上机试题(java)找出一个字符串中出现次数最多的字符
- python编程:统计文件中出现次数最多的前10个词,并按出现次数排列它们
- Android仿新版微信主界面(使用android-support-v7兼容包,兼容2.2及其以上版本)
- AutoLayout(自动布局)入门
- poll和select的使用和差异
- <MFC多线程> 读者写者问题
- Java Insert Interval(插入间隔)
- 2014华为机试题——取出整型数据中出现次数最多的元素,并按照升序排列返回
- java痛苦学习之路[七]---专注移动互联网产品设计研发
- WeChall Training: Crypto - Caesar I
- Linux进程间通信——使用匿名管道
- Android App 内存泄露之Thread
- [ACM] POJ 1936 All in All (查找,一个串是否在另一个串中)
- webcente
- Linux进程间通信——使用命名管道
- Oracle Arraysize设置对于逻辑读的影响实例分析