题目

一个长度为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) {

经典算法题:连续段的中数相关推荐

  1. 经典算法题每日演练——第十九题 双端队列

    经典算法题每日演练--第十九题 双端队列 原文:经典算法题每日演练--第十九题 双端队列 话说大学的时候老师说妹子比工作重要~,工作可以再换,妹子这个...所以...这两个月也就一直忙着Fall in ...

  2. 经典算法题每日演练——第十题 树状数组

    原文:经典算法题每日演练--第十题 树状数组 有一种数据结构是神奇的,神秘的,它展现了位运算与数组结合的神奇魅力,太牛逼的,它就是树状数组,这种数据结构不是神人是发现不了的. 一:概序 假如我现在有个 ...

  3. 经典算法题每日演练——第六题 协同推荐SlopeOne 算法

    原文:经典算法题每日演练--第六题 协同推荐SlopeOne 算法 相信大家对如下的Category都很熟悉,很多网站都有类似如下的功能,"商品推荐","猜你喜欢&quo ...

  4. 经典算法题每日演练——第二十二题 奇偶排序

    原文:经典算法题每日演练--第二十二题 奇偶排序 这个专题因为各种原因好久没有继续下去了,MM吧...你懂的,嘿嘿,不过还得继续写下去,好长时间不写,有些东西有点生疏了, 这篇就从简单一点的一个&qu ...

  5. 经典算法题每日演练——第一题 百钱买百鸡

    经典算法题每日演练--第一题 百钱买百鸡 原文:经典算法题每日演练--第一题 百钱买百鸡 百钱买百鸡的问题算是一套非常经典的不定方程的问题,题目很简单:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱, ...

  6. python全排序算法题_Python的100道经典算法题(1)

    按照c语言的100道经典算法题,自己原创写的,就得是自己的练习题了 [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位.十位.个位的数 ...

  7. java经典100例算法题_10道java经典算法题,每一题都能帮你提升java水平!

    JAVA经典算法题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子 ...

  8. 经典算法题每日演练——第七题 KMP算法

    原文:经典算法题每日演练--第七题 KMP算法 在大学的时候,应该在数据结构里面都看过kmp算法吧,不知道有多少老师对该算法是一笔带过的,至少我们以前是的, 确实kmp算法还是有点饶人的,如果说红黑树 ...

  9. 每日经典算法题(十六) 九九乘法表

    每日经典算法题(十六) 九九乘法表 九九乘法表:Multiplication Table 99 题目 输出 9 * 9 口诀 程序分析 分行与列考虑,共9行9列,i 控制行,j 控制列 思路 非常经典 ...

  10. 每日经典算法题(十三) 逆推算法(平方根相关)

    每日经典算法题(十三) 逆推算法(平方根相关) 平方根:Square Root 题目 有一个整数,它加上 100 后是一个 完全平方数 ,再加上 168 又是一个 完全平方数 ,请问该数是多少? 程序 ...

最新文章

  1. 【linux】Valgrind工具集详解(五):命令行详解
  2. Spring Cloud应用开发(二:实现服务间的调用)
  3. 【SSH项目实战】国税协同平台-26.分页功能编写
  4. C语言使用fopen的两点注意事项
  5. 解决hao123胁持chrome等浏览器主页问题
  6. 当当网头部和尾部——CSS源码
  7. 【HDU - 1257】最少拦截系统 (标解dp,贪心可过,最长上升子序列类问题)
  8. 数据库alter用法总结
  9. linux驱动编写(platform总线和网卡驱动)
  10. [Linux系统] VMware克隆CentOS7,解决网络配置问题
  11. PySpark︱pyspark.ml 相关模型实践
  12. 柱形图怎么变成横着的_鞋柜爆满怎么办?来看看日本人怎么收纳鞋子,感觉能多塞下20双...
  13. 图像形状特征(二)--Hu距
  14. RK3399pro 使用TNN日记 2(Linux系统)
  15. Oracle查询被锁表和解锁方法
  16. linux编译 __stdcall,Linux下的stdcall 约定格式
  17. 短视频如何打动用户?从人的欲望出发,吸粉引流很简单
  18. python使用匿名函数计算长方形的面积
  19. 从键盘输入一个英文字母,进行大小写字母转换,并输出。
  20. 计算机硬件英语词汇,计算机硬件英语词汇

热门文章

  1. 《铸梦之路》帧同步卡牌手游案例 回放、倍速、跳过
  2. thx是什么意思_thx,np,kk,lol,2b?老外在游戏里说的英语什么意思?
  3. STC52单片机 第三个定时器 定时器2详解
  4. 区块链之 Merkle Tree理解
  5. linux的unbond服务无法启动,unbound和mail服务的部署和简单应用
  6. 车企出海异常拥挤,瞄准欧洲不再仅盯亚非拉?
  7. 本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)的主页
  8. 数论1.1(一些函数及筛法)
  9. EDUSOHO踩坑笔记之五:edusoho的后台目录结构
  10. Ubuntu 20.04 64位 Google Protocol ProtoV3 bufbuild buf 工具安装使用指南