现在有一个包含K个整数的数组(0 < K ≤ 1000)找到其中个数超过50%的数。数组中的数大于-50且小于50。
第一行包含一个整数K,表示数组大小;
第二行包含K个整数,分别是数组中的每个元素,相邻两个元素之间用单个空格隔开。
如果存在这样的数,输出这个数;否则输出no。
3
1 2 2
2
#include<iostream>
using namespace std;
int main() {
int a[105] = {0}; // 定义一个大小为105 的数组 a 并初始化为 0,用于存储数字出现的次数
int k, t; // k 表示输入数字的次数,t 表示输入的数字
cin >> k; // 从标准输入读取输入数字的次数 k
// 输入每个数字并进行次数标记
for(int i = 1; i <= k; i++){ // 循环 k 次,从 1 到 k
cin >> t; // 从标准输入读取一个整数到 t
t = t + 50; // 将 t 加上 50
++a[t]; // 将数组 a 中下标为 t 的元素值加 1
}
// 遍历每个桶查找出现次数超过一半数字
for(int i = 1; i < 100; i++){ // 循环 100 次,从 1 到 99
if(a[i] > k / 2){ // 如果数组 a 中下标为 i 的元素值大于 k 的一半
cout << i - 50; // 输出 i - 50
return 0; // 程序结束并返回 0
}
}
cout << "no"; // 如果没有找到,输出 "no"
return 0; // 程序结束并返回 0
}
输入n(n<=5000)个整数,并进行从小到大排序,找到第k个位置的值并进行输出(相同大小数字只计算一次),k<=1000,正整数均小于30000。
第一行为n和k,第二行为n个正整数的值,整数间用空格隔开。
第k个值;若无解,则输出“NO RESULT”。
10 3
1 3 3 7 2 5 1 2 4 6
3
#include<iostream>
using namespace std;
int main() {
int a[30005] = {0}; // 定义一个较大的数组 a 并初始化为 0,用于存储数字出现的信息
int n, t; // n 表示输入数字的数量,t 表示输入的数字
cin >> n; // 从标准输入读取输入数字的数量 n
// 对输入的数字进行处理
for(int i = 1; i <= n; ++i){ // 循环 n 次,从 1 到 n
cin >> t; // 从标准输入读取一个整数到 t
++a[t]; // 将数组 a 中下标为 t 的元素值加 1
}
int cnt = 0; // 定义计数器 cnt 并初始化为 0
// 遍历每一个桶对出现数字进行计数
for(int i = 1; i <= 30000; ++i){ // 循环 30000 次,从 1 到 30000
if(a[i]!= 0){ // 如果数组 a 中下标为 i 的元素值不为 0
++cnt; // 计数器 cnt 加 1
if(cnt == k){ // 如果计数器 cnt 等于 k
cout << i << endl; // 输出 i,并换行
return 0; // 程序结束并返回 0
}
}
}
cout << -1 << endl; // 如果没有找到满足条件的 i,输出 -1
return 0; // 程序结束并返回 0
}
给定含有n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的数,只保留该数第一次出现的位置,删除其余位置。
输入包含两行:
第一行包含一个正整数n(1 <= n <= 20000),表示第二行序列中数字的个数;
第二行包含n个整数,整数之间以一个空格分开。每个整数大于等于10、小于等于100。
输出只有一行,按照输入的顺序输出其中不重复的数字,整数之间用一个空格分开。
5
10 12 93 12 75
10 12 93 75
#include<iostream>
using namespace std;
int main() {
int a[105] = {0}; // 定义一个大小为 105 的数组 a 并初始化为 0
int n, x; // n 表示输入数字的数量,x 表示输入的数字
cin >> n; // 从标准输入读取输入数字的数量 n
// 输入数字并判断,未被标记过的数字,输出并进行标记
for(int i = 1; i <= n; ++i){
cin >> x; // 从标准输入读取一个整数到 x
if(a[x] == 0){ // 如果数组 a 中下标为 x 的元素值为 0
cout << x << " "; // 输出 x,并输出一个空格
a[x] = 1; // 将数组 a 中下标为 x 的元素值标记为 1
}
}
return 0; // 程序结束并返回 0
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。