简单c语言练习题(第三期)
分享一些练习题和大致解题思路(C语言)
分享的题基本都是各大网站,或者丛书中出的比较优秀的题,或者是博主看到的写过的一些题,由于博主也是一位刚入门的萌新,水平有限,现在可能不会出什么非常难的题,但是对于初入c语言的学员应该会有些帮助,好的现在开始(答案会放在另一个分组中,答案会是博主自己手打的,可能会有错误或者更优解也非常欢迎探讨交流一番)
题目
有一个数组a,编写函数,求数组中前k个最小的数字
编写函数: 求数组中元素出现次数超过数组长度一半的数字,如
{1,2,3,2,2,2,5,4,2}
数字2 为超过数组长度一半的数字输入一个整形数组,数组里有整数也有负数,数组中一个或连续的多个整数组成一个子数组,求所有子数组的和的最大值,要求时间复杂度为o(n),例如输入的数组为
{1,-2,3,10,-4,7,2,-5}
,和最大的子数组为{3,10,-4,7,2}
,因此输出为盖子数组的和18
解题思路
可以使用快速排序的思想来实现,每一次快速排列出的数都是,这个数的左边小于这个数,这个数的右边大于这个数,要求找前k个最小的数字,那就是这个数的位置和k-1(因为是数组 位置要-1)相等即可,还不懂的可以看图理解
由于要求的数字长度超过数组的一半,可以使用第一题的思路,将最中间的数排列出来就一定是要求的数
可以定义两个变量,一个sum,另一个max,sum是求每一个数相加的和时都是放在sum上,max是每次相加之后出现的最大值,当连续相加出现负值,例如:1 -2 3 1+(-2)之后sum就为负数了,这时可以判断,当sum为负数时,将sum=0,意思就是前面的数就都不要了,从下一个数开始从新计数,对比一下
sum=1-2+3=1
而将sum置零则是:1-2=-1 sum=00+3=3
分享一下
如果对题目感兴趣可以看看前几期的题
第二期链接https://blog.csdn.net/Heart_of_collaps/article/details/100144257
第一期链接https://blog.csdn.net/Heart_of_collaps/article/details/100126802
每一期都会在其他分组中放上答案,如果写不出来,可以参考答案对照着来写
简单c语言练习题(第三期)相关推荐
- linux写一个10的阶乘,C语言练习题:求1到10的阶乘之和简单实例
C语言练习题:求1到10的阶乘之和简单实例 C语言练习题:求1到10的阶乘之和简单实例 #include int factorial(int n) { if(0==n) return 1; if(1= ...
- 语言 提取列名_学习健明老师发布的R语言练习题的学习笔记(二)
学习者:骆栢维 题目来源:生信基石之R语言 中级10 个题目:http://www.bio-info-trainee.com/3750.html 备注:本文为笔者学习健明老师GitHub答案代码的学习 ...
- go程序设计语言练习题
来自 go程序设计语言 一书 源博客地址go程序设计语言练习题 练习题3.10 编写一个非递归的comma函数,运用bytes.Buffer,而不是简单的字符串拼接 package mainimpor ...
- C语言语句单选题,C语言练习题
C语言练习题 C一个switch语句总是可以被一系列ifelse语句替换 D switch语句的测试表达式可以是任何类型 E当执行break语句时程序将停止执行 20在C语言中,在int num[5] ...
- c语言练习题及答案)(1),c语言练习题(带详解答案)1.pdf
c语言练习题(带详解答案)1 (-2) -1: 一单项选择题 /为求商运算符,该运算符能够对整型.字符.浮点等类型的数 据进行运算,5/2 2 1.(A )是构成C语言程序的基本单位. 11.如果 i ...
- 循环数组函数c语言,C语言练习题2(分支结构循环结构数组函数2009-2012二级真题)..doc...
C语言练习题2(分支结构循环结构数组函数2009-2012二级真题). C语言练习题(二) 一 选择题 1.有以下程序 #include void main() { int a: canf(" ...
- python简单编程-编程中最简单的语言Python,这样学或许更容易
最近微信小程序上面出了一个跳一跳的小游戏 大家有没有玩呀? 编程中最简单的语言Python,这样学或许更容易 分享之前我还是要推荐下我自己建的Python开发学习群:628979297,群里都是学Py ...
- python入门练习题-Python简单新手入门练习题
分享给Python新手们的几道简单练习题 前言 本文主要给大家分享了一些简单的Python练习题,对学习python的新手们来说是个不错的练习问题,下面话不多说了,来一起看看详细的介绍吧. 第一题:使 ...
- 用简单的语言描述C++ 是什么?
用简单的语言描述C++ 是什么? 答:C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛.C++支持多种编程范式 --面向对象编程.泛型编程和过程化编程. 其编程领域众广,常用于系统开发,引 ...
最新文章
- Java编程中,有哪些好的习惯从一开始就值得坚持?
- 开发日记-20190614 克服过去
- 第四篇[机器学习] 机器学习,线性回归的优化
- 特征检测器 FeatureDetector
- [BetterExplained]如何有效地记忆与学习
- 山东省能源产业项目动态及未来投资决策建议报告2021版
- Calling JNI Functions with Java Object Arguments from the Command Line
- 在《糖豆人》身上,我们看到了竞技游戏火爆的六大因素
- JS中的location.href
- 华为错误报告存储在哪里_守护你的数据,华为云数据安全中心正式公测
- 当一个GameObject有两个Collider组件时,Physics Material不起作用
- 科技通讯PSD分层海报出击!Hello 5G时代
- stm32单片机相同系列型号代码移植
- 数字化转型— 华为业务流程模型学习
- parallel scavenge 与parnew 区别:
- win10多任务处理快捷键
- 电脑一些基础知识(一)
- 高中数学教科书选修系列介绍
- 【web自动化测试】
- js对日期加减指定天、时、分、秒
热门文章
- Bugku_Web18_秋名山车神
- MEM/MBA数学基础(03)整式与分式 运算
- OpenGL播放yuv数据流(着色器SHADER)-IOS(一)
- 人工智能语言,我们的骄傲
- 马斯克宣布重磅消息!一切来得那么快!
- 【FFmpeg】没有平均fps,计算音视频 pkt duration
- cisco pkt 路由器配置基础及接口配置 路由协议与交换技术
- 云南计算机网络技术专业培训学院,云南哪些大学有计算机网络技术专业
- ps入门第9天_ps色阶ps曲线 案例:ps照片校正
- 地理模块化施工的优点_2019年高考地理微专题09秒解分析影响意义题