数组中有一个数字出现的次数超过数组长度的一半(C、Python)
C语言
1 /*
2 -----------------------------------
3 动态分配需要的内存大小
4 输入数组元素的值
5 通过函数调用,传地址对数组排序
6 循环每个元素,当循环比较某个值时,如果有相等的,计数加1,比较完成后,和cn比较,如果大于cn,那么说明找到,退出循环
7 -----------------------------------
8 */
9
10 # include <stdio.h>
11 # include <malloc.h>
12
13 void findnum(int * arr, int n)
14 {
15 int i, j, count, cn;
16 count = 0;
17 cn = n/2;
18
19 for (i=0; i<n; i++) //双重for循环,统计元素个数
20 {
21 for (j=0; j<n; j++)
22 {
23 if (arr[i] == arr[j])
24 count++;
25 }
26
27 if (count > cn)
28 {
29 printf("超过长度一半的数字是:%d\n", arr[i]);
30 break;
31 }
32 else if (i==n-1)
33 {
34 printf("无超过长度一半的数字!\n");
35 break;
36 }
37 count = 0;
38 }
39 return;
40 }
41
42 int main(void)
43 {
44 int len, i;
45 int * pArr;
46 char ch;
47
48 do {
49
50 printf("请输入数字个数:");
51 scanf("%d", &len); //输入元素个数
52 printf("请输入%d个数字(以空格分隔):", len);
53 pArr = (int *)malloc(sizeof(int)*len); //动态分配内存
54 for (i=0; i<len; i++) //输入值
55 scanf("%d", &pArr[i]);
56 printf("动态数组元素为:\n");
57 for (i=0; i<len; i++) //输出值
58 printf("%d ", pArr[i]);
59 printf("\n");
60
61 findnum(pArr, len); //调用查找函数
62 free(pArr); //释放动态分配的内存
63
64 printf("\n你想继续么(Y/N):"); //询问是否继续
65 flushall(); //清除缓存
66 scanf(" %c", &ch);
67 //printf("%c\n", ch);
68
69
70 }while ('y'==ch || 'Y'==ch); //如果输入的是Y或者y,表示继续
71
72 return 0;
73 }
74
75 /*
76 在Vc++6.0中的输出结果为:
77 -----------------------------------
78
79 请输入数字个数:5
80 请输入5个数字(以空格分隔):1 2 3 4 5
81 动态数组元素为:
82 1 2 3 4 5
83 无超过长度一半的数字!
84 你想继续么(Y/N):y
85 请输入数字个数:5
86 请输入5个数字(以空格分隔):1 1 1 2 3
87 动态数组元素为:
88 1 1 1 2 3
89 超过长度一半的数字是:1
90 你想继续么(Y/N):n
91 Press any key to continue
92
93 -----------------------------------
94 */
Python:
li = [1,2,3,4,5,2,2,2,2,2]
def findn(li):
for i in li:
if li.count(i)>len(li)/2:
return i
n = findn(li)
print(n)
数组中有一个数字出现的次数超过数组长度的一半(C、Python)的更多相关文章
- 【c语言】数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. 比如输入一个长度为9的数组{1,2.3.2,2.2.5,4.2}, 因为数组中数字2出现了5次,超过数组的长度的一半,因此输出2 ...
- 《剑指offer》数组中出现次数超过数组长度一半的数字
题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2.如 ...
- 【剑指offer】数组中出现次数超过数组长度一半的数字,C++实现
原创博文,转载请注明出处! # 题目 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过 ...
- 找出整数数组中出现次数超过数组长度一半的元素(Java)
Question:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字 package com.study.zhipengs.test; import java.util.Arrays; im ...
- 42.输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S, 如果有多对数字的和等于S,输出两个数的乘积最小的。
输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S, 如果有多对数字的和等于S,输出两个数的乘积最小的. 这道题有很多烟雾弹: 首先如果有多对,最前面的两个数就是乘积最小的, ...
- 剑指offer42:数组和一个数字S,输出两个数的乘积最小的
1 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. ...
- 如果在num1的任何位置有一个数字的连续三倍,并且在num2中有一个数字的连续两倍,则返回1。 如果不是这样,则返回0
''' 它接受数字num1和num2,如果在num1的任何位置有一个数字的连续三倍,并且在num2中有一个数字的连续两倍,则返回1. 如果不是这样,则返回0 例子 triple_double(4519 ...
- 笔试算法题(30):从已排序数组中确定数字出现的次数 & 最大公共子串和最大公共序列(LCS)
出题:在已经排序的数组中,找出给定数字出现的次数: 分析: 解法1:由于数组已经排序,所以可以考虑使用二分查找确定给定数字A的第一个出现的位置m和最后一个出现的位置n,最后m-n+1就是A出现的次数: ...
- OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法
<span style="font-size:24px;">//////第一种方法 // NSMutableArray *arr = [NSMutableArray a ...
随机推荐
- Maven 教程(7)— Maven使用的最佳实践
原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79544201 1.设置MAVEN_OPTS环境变量 通常需要设置MAVEN_OP ...
- [转帖]为什么HikariCP被号称为性能最好的Java数据库连接池,如何配置使用
为什么HikariCP被号称为性能最好的Java数据库连接池,如何配置使用 原创Clement-Xu 发布于2015-07-17 15:53:14 阅读数 57066 收藏 展开 HiKariCP是 ...
- golang gin 上传图片到aws s3
要上传图片到aws s3首先需要 知道 aws 的地区 也就是region ,还需要知道储存桶的名字,其次就是Access key ID和Secret access key package handl ...
- HUT 排序训练赛 G - Clock
Clock Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u [Submit] [Go ...
- 原始(Prototype)模式
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型对象创建新的对象. 原型模式其实就是从一个对象创建另外一个可复制的对象,而且不需要知道任何创建的细节.(最常用的就是基于流的深复制) 原始模 ...
- HyperFT项目安卓端的环境搭建及编译的图解教程
一.Android studio 3.5安装详解 1.安装IDE 安装前的准备:已安装过的需要卸载,并且删除C:\user\yourname\ 下.android ,gradle, .AndroidS ...
- C# ThreadStart中如何带参数
1.ThreadStart 线程执行带参数的方法,new Thread(new ThreadStart(delegate { ThreadTask(firstPage, lastPage); })); ...
- Mybatis源码解析(二) —— 加载 Configuration
Mybatis源码解析(二) -- 加载 Configuration 正如上文所看到的 Configuration 对象保存了所有Mybatis的配置信息,也就是说mybatis-config. ...
- 输入url之后经历什么?
一.浏览器查找输入域名的IP地址(拿到 IP) 1.查找浏览器缓存(浏览器一般会缓存DNS记录一段时间,一般为2-30分钟). 2.查找系统缓存(即hosts文件,有没有对应的IP) 3.以上都没有的 ...
- k8s的node节点无法调度的问题
1.现象,创建deployment时 2.查看污点 [fedora@k8s-cluster--ycmwlao4q5wz-master- ~]$ kubectl describe node k8s-cl ...