经典算法题:连续段的中数
题目
一个长度为n的正整数序列,想要从里面取出一段连续的长度大于等于k的序列。定义一个序列的“中数”为最大的整数x,使得序列中至少一半的数字大于等于x,求这个取出来的序列的中数最大值?
思路
滑动窗口的方式处理,获取最大值、最小值作为中数左右边界,然后取中间值,遍历下标0-》k对应的数据判断mid是否是中数(至少一半的数字大于等于mid),如果mid是中位数,则将中数最小值改为mid + 1,继续遍历数组。如果不是中位数,从下标k开始继续遍历(维持)。如果mid是中位数,则将中数最小值改为mid + 1,否则中数最大值为mid -1,重新遍历直到左右边界重合。
实现
public int solve (int n, int k, int[] a) {
// write code here
int max = 0;
int min = 0;
for (int i = 0; i < n; i++) {
max=Math.max(max,a[i]);
min=Math.min(min,a[i]);
}
int l=min;
int r=max;
int ans=0;
while (l <= r) {
经典算法题:连续段的中数相关推荐
- 经典算法题每日演练——第十九题 双端队列
经典算法题每日演练--第十九题 双端队列 原文:经典算法题每日演练--第十九题 双端队列 话说大学的时候老师说妹子比工作重要~,工作可以再换,妹子这个...所以...这两个月也就一直忙着Fall in ...
- 经典算法题每日演练——第十题 树状数组
原文:经典算法题每日演练--第十题 树状数组 有一种数据结构是神奇的,神秘的,它展现了位运算与数组结合的神奇魅力,太牛逼的,它就是树状数组,这种数据结构不是神人是发现不了的. 一:概序 假如我现在有个 ...
- 经典算法题每日演练——第六题 协同推荐SlopeOne 算法
原文:经典算法题每日演练--第六题 协同推荐SlopeOne 算法 相信大家对如下的Category都很熟悉,很多网站都有类似如下的功能,"商品推荐","猜你喜欢&quo ...
- 经典算法题每日演练——第二十二题 奇偶排序
原文:经典算法题每日演练--第二十二题 奇偶排序 这个专题因为各种原因好久没有继续下去了,MM吧...你懂的,嘿嘿,不过还得继续写下去,好长时间不写,有些东西有点生疏了, 这篇就从简单一点的一个&qu ...
- 经典算法题每日演练——第一题 百钱买百鸡
经典算法题每日演练--第一题 百钱买百鸡 原文:经典算法题每日演练--第一题 百钱买百鸡 百钱买百鸡的问题算是一套非常经典的不定方程的问题,题目很简单:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱, ...
- python全排序算法题_Python的100道经典算法题(1)
按照c语言的100道经典算法题,自己原创写的,就得是自己的练习题了 [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位.十位.个位的数 ...
- java经典100例算法题_10道java经典算法题,每一题都能帮你提升java水平!
JAVA经典算法题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子 ...
- 经典算法题每日演练——第七题 KMP算法
原文:经典算法题每日演练--第七题 KMP算法 在大学的时候,应该在数据结构里面都看过kmp算法吧,不知道有多少老师对该算法是一笔带过的,至少我们以前是的, 确实kmp算法还是有点饶人的,如果说红黑树 ...
- 每日经典算法题(十六) 九九乘法表
每日经典算法题(十六) 九九乘法表 九九乘法表:Multiplication Table 99 题目 输出 9 * 9 口诀 程序分析 分行与列考虑,共9行9列,i 控制行,j 控制列 思路 非常经典 ...
- 每日经典算法题(十三) 逆推算法(平方根相关)
每日经典算法题(十三) 逆推算法(平方根相关) 平方根:Square Root 题目 有一个整数,它加上 100 后是一个 完全平方数 ,再加上 168 又是一个 完全平方数 ,请问该数是多少? 程序 ...
最新文章
- 【linux】Valgrind工具集详解(五):命令行详解
- Spring Cloud应用开发(二:实现服务间的调用)
- 【SSH项目实战】国税协同平台-26.分页功能编写
- C语言使用fopen的两点注意事项
- 解决hao123胁持chrome等浏览器主页问题
- 当当网头部和尾部——CSS源码
- 【HDU - 1257】最少拦截系统 (标解dp,贪心可过,最长上升子序列类问题)
- 数据库alter用法总结
- linux驱动编写(platform总线和网卡驱动)
- [Linux系统] VMware克隆CentOS7,解决网络配置问题
- PySpark︱pyspark.ml 相关模型实践
- 柱形图怎么变成横着的_鞋柜爆满怎么办?来看看日本人怎么收纳鞋子,感觉能多塞下20双...
- 图像形状特征(二)--Hu距
- RK3399pro 使用TNN日记 2(Linux系统)
- Oracle查询被锁表和解锁方法
- linux编译 __stdcall,Linux下的stdcall 约定格式
- 短视频如何打动用户?从人的欲望出发,吸粉引流很简单
- python使用匿名函数计算长方形的面积
- 从键盘输入一个英文字母,进行大小写字母转换,并输出。
- 计算机硬件英语词汇,计算机硬件英语词汇
热门文章
- 《铸梦之路》帧同步卡牌手游案例 回放、倍速、跳过
- thx是什么意思_thx,np,kk,lol,2b?老外在游戏里说的英语什么意思?
- STC52单片机 第三个定时器 定时器2详解
- 区块链之 Merkle Tree理解
- linux的unbond服务无法启动,unbound和mail服务的部署和简单应用
- 车企出海异常拥挤,瞄准欧洲不再仅盯亚非拉?
- 本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)的主页
- 数论1.1(一些函数及筛法)
- EDUSOHO踩坑笔记之五:edusoho的后台目录结构
- Ubuntu 20.04 64位 Google Protocol ProtoV3 bufbuild buf 工具安装使用指南