1152: 零起点学算法59——找出一个数组中出现次数最多的那个元素

1152: 零起点学算法59——找出一个数组中出现次数最多的那个元素

Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lld
Submitted:
990  Accepted: 532
[Submit][Status][Web Board]

Description

找出一个数组中出现次数最多的那个元素

Input

第一行输入一个整数n(不大于20)
第二行输入n个整数

多组数据

Output

找出n个整数中出现次数最多的那个整数(每行一个,保证唯一解)

Sample Input

4
1 2 2 3

Sample Output

2

Source

零起点学算法

 1 #include<stdio.h>
 2 int main(){
 3     int n,a[20],b[20]={0};
 4     while(scanf("%d",&n)!=EOF){
 5         for(int i=0;i<n;i++){
 6             scanf("%d",&a[i]);
 7         }
 8
 9     for(int i=0;i<n;i++){
10         for(int j=i+1;j<n;j++){
11             if(a[i]==a[j]){
12                 b[i]++;
13             }
14         }
15     }
16
17     int m=b[0];
18     for(int i=1;i<n;i++){
19         if(b[i]>m)
20         m=b[i];
21     }
22
23     for(int i=0;i<n;i++){
24         if(b[i]==m){
25         printf("%d\n",a[i]);
26         }
27     }
28     }
29     return 0;
30 } 
时间: 2024-12-24 11:22:36

1152: 零起点学算法59——找出一个数组中出现次数最多的那个元素的相关文章

找出一个数组中出现次数最多的那个元素

#include <stdio.h> int main() { int n,a[20],i,j,flag=0,max; int b[20]={0}; while(scanf("%d",&n)==1){ if(n==0) break; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(a[i]==a[j]) b[i]++

1142: 零起点学算法49——找出数组中最大元素的位置(下标值)

1142: 零起点学算法49--找出数组中最大元素的位置(下标值) Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 1937  Accepted: 977[Submit][Status][Web Board] Description 找出数组中最大的元素的下标. Input 多组测试,每组先输入一个不大于10的整数n 然后是n个整数 Output 输出这n个整数中最大的元素及下标值 Sample I

算法题:找出一个数组中依次最大的k个元素

package arithmetic; import java.util.Arrays; /** * 找出一个数组中依次最大的k个元素 * @author SHI */ public class FindMaxFigure { public static void main(String[] args) { int[] a=new int[]{1,5,-1,8,0,2}; System.out.println(Arrays.toString(findBigFigure(a, 3))); } /*

[PY3]——找出一个序列中出现次数最多的元素/collections.Counter 类的用法

问题 怎样找出一个序列中出现次数最多的元素呢? 解决方案 collections.Counter 类就是专门为这类问题而设计的, 它甚至有一个有用的 most_common() 方法直接给了你答案 collections.Counter 类 1. most_common(n)统计top_n from collections import Counter words = [ 'look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes', 't

Problem B: 零起点学算法81——找出数组中最大元素的位置(下标值

#include<stdio.h> int main(void) { int n,a[10],i,max; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) scanf("%d",&a[i]); max=0; for(i=1;i<n;i++) { if(a[max]<a[i]) max=i; } printf("%d %d",a[max],max); prin

1097:零起点学算法04——再模仿一个算术题

1097: 零起点学算法04--再模仿一个算术题 Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lldSubmitted: 2627  Accepted: 2202[Submit][Status][Web Board] Description 上题会模仿了吧.再来模仿一个. 现在要求你模仿一个乘法的算术题 Input 没有输入 Output 输出9乘以10的值 Sample Output 90 Source 零起点学算法

程序员面试100题之十:快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值(转)

能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解. 假如有如下的两个数组,如图所示: 5,6,1,4,7,9,8 给定Sum= 10 1,5,6,7,8,9 给定Sum= 10 分析与解法 这个题目不是很难,也很容易理解.但是要得出高效率的解法,还是需要一番思考的. 解法一 一个直接的解法就是穷举:从数组中任意取出两个数字,计算两者之和是否为给定的数字. 显然其时间复杂度为N(N-1)/2即O(N^2).这个算法很简

面试题1:找出一个数组中三个只出现一次的数字

version1: 找出一个数组中一个只出现一次的数字,其他数字都出现两次:将所有数字异或,得到的结果即为只出现一次的. version2: 找出一个数组中两个只出现一次的数字,其他数字都出现两次:将所有数字异或,得到的结果即为x=a^b, index为x中第一个为1的位,则a 和b中第index为必然有一个为1,有一个为0.据此将所有数据分为两组,一组的第index为都为1,另一组第index为都为0,第一组数字异或得到a,第二组数字异或得到b. 时间复杂度为o(n),空间复杂度为o(1).

找出该字符串中出现次数最多的那个字符

/*时间限制 C/C++ 3s 其他 6s, 空间限制 C/C++ 32768k 其他 65535k 题目描述     给定一个长度不限的字符串,请找出该字符串中出现次数最多的那个字符,并打印出该字符及其出现次数; 如果多个字符的出 现次数相同,只打印首个字符;输出字符的大小写格式要与输 入保持一致,大小写不敏感模式下, 输出字符的大小写格式与该 字符首次出现时的大小写格式一致.实现时无需考虑非法输. 输入描述     输入为 字符串大小写敏感标记 其中"大小写敏感标记"为可选参数,取