排序数组输出指定数字个数
来源:互联网 发布:eclipse导入数据库 编辑:程序博客网 时间:2024/05/22 02:05
2017移动端 测试题
1. 题目: 在排序数组中,找出给定数字的出现次数,时间效率越高越好,比如 [1, 2, 2, 2, 3] 中2的出现次数是3次。
输入:
1,2,2,2,3
输出:
1(1)
2(3)
3(1)
不定长度可以存入向量,在存入的过程中进行比较并保存结果,最后进行输出。这样就能满足此题目的输入输出的要求。但是需要把所有的结果都列出来
下面提供一种方法,将输入存入vector,用二分法得到指定数字的下界和上界,通过上界和下界的序号得到指定数字的数目。
#include <iostream>#include<stdlib.h>#include <vector>using namespace std;int getUpper(vector<int> &vec, int num, int size){int low = 0, high = size - 1;while (low < high){int mid = (low + high + 1) / 2;if (vec[mid] <= num)low = mid;elsehigh = mid - 1;}return low;}int getLower(vector<int> &vec, int num, int size){int low = 0, high = size - 1;while (low < high){int mid = (low + high) / 2;if (vec[mid] >= num)high = mid;elselow = mid + 1;}return low;}int main(){vector<int> arry;int n;while (cin>>n){arry.push_back(n);char c = cin.get();if (c ==',')continue;if (c == '\n')break;}int size = arry.size();int num;cin >> num;cout << num << '(' << getUpper(arry, num, size) - getLower(arry, num, size) + 1 << ')' << endl;return 0;}
阅读全文
0 0
- 排序数组输出指定数字个数
- 数字在排序数组中的个数
- pta 统计指定数字个数
- 输出一个整数序列中与指定数字相同的数的个数
- 利用可变数组将用户输入数字排序后输出
- C语言 与指定数字相同的数的个数(一维数组)
- 输出指定位置的数字
- 第八周输出指定数字
- 指定数字的输出位数
- 统计单词个数排序输出
- c++之数组篇1:对排序数组找出指定数字出现的次数
- 每行指定元素个数进行输出
- 【数字】【排序】判断数组对某一个数是否是“3-sum”
- 数字字符串转为指定数组
- 数组求和为指定数字
- list根据指定数字排序
- c语言排序后删除数组中重复的数字再排序输出
- javascript_数字数组排序
- DevOps 学习(二)-DevOps 的工具链工具链
- 【开学收心大绝招:让孩子玩到最后…
- HashMap学习
- 【每一个「x」,都是孩子学习负责…
- 【对家人适时说对的话,而不是蠢的…
- 排序数组输出指定数字个数
- 【怎样说话不得罪人?】我又没说啥…
- 【抛开「论断」,让彼此重获自由】…
- 【开学前家长必知教战守策——有效减…
- 【不妨从“第3选择”开始】很多老师…
- 【放弃一个你爱的人并没有损失,错…
- 【什么时候,你会再给逝去的爱情一…
- if __name__=='__main__'作用
- 【情人交战守则,感情中的Take&nbs…