题意:
      给你N个数字组成的数列,然后问你这里面有多少个是以M为中位数的子序列。


思路:

      首先分四中简单的情况求
       (1) 就是只有他自己的那种情况 那么sum+1
       (2) 从自己开始向左延伸,x, x - 1, x - 2 ...这种可以记录大于m的个数max和小于m的个数min当两个数相等的时候(min == max)就 sum++,然后在这样 mark[max - min]++;记录差值产生的次数,可以开两个数组,一个寸正差,一个存负差,或者直接开一个容器,我开的是容器,这个地方随意

       (3) 从自己开始向又延伸,跟上面的操作一样,唯独就是在mark[max - min]++那不一样,这一步不用记录差值的出现次数,而是直接算 sum += mark[min-max],这里很简单,就是优化了暴力,这个题目如果直接暴力是O(n^2)的,这样算出来是O(N)的。不是很难理解就不多解释了,还不懂得看看下面的代码就懂了,水题一道。

#include<stdio.h>
#include<map>#define N 44000

using namespace std;map<int ,int>mark;int num[N] ,L[N] ,R[N];int main ()
{int sum ,n ,m ,i ,mk;while(~scanf("%d %d" ,&n ,&m)){for(i = 1 ;i <= n ;i ++){scanf("%d" ,&num[i]);if(num[i] == m) mk = i;}mark.clear();sum = 0;                 int min = 0,max = 0;for(i = mk + 1 ;i <= n ;i ++){num[i] < m ? min++ : max++;if(min == max) sum ++;mark[max - min] ++;}min = 0 ,max = 0;for(i = mk - 1 ;i >= 1 ;i --){num[i] < m ? min ++ : max ++;if(min == max) sum ++;sum += mark[min - max];}printf("%d\n" ,sum + 1);}return 0;
}

hdu4908 中位数子串相关推荐

  1. 2022-6-13 全O(1)的数据结构,两数相加,无重复字符的最长子串,寻找两个正序数组的中位数,盛最多水的容器,......

    1. 全 O(1) 的数据结构 Design a data structure to store the strings' count with the ability to return the s ...

  2. LeetCode【3--无重复的最长字串】 LeetCode【4--有序数组中的中位数】

    无重复的最长字串 题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 解题思路 看到这道题,其实就两个步骤,遍历字符串,记录当前字符有没有重复. 重复一般解决就是哈希,这里用个 ...

  3. java 最长回文_【Java】【每日算法/刷穿 LeetCode】5. 最长回文子串(中等)

    首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]5. 最长回文子串(中等) 宫水三叶发布于 今天 12:00 题目描述 给你一个字符串 s,找到 s 中最长的回文子串. 示例 ...

  4. java无序数组找最长连续子串,算法题整理

    链表: 一个单链表,奇数位升序,偶数位降序,输出排序后的单链表.(写了个归并,拆成两个单链表并且把偶数位做头插翻转过来,再归并到一起.) 链表节点两两反转 奇偶链表 单向链表,头尾奇偶交替输出(中等) ...

  5. Redis 笔记(03)— string类型(设置key、获取key、设置过期时间、批量设置获取key、对key进行加减、对key值进行追加、获取value子串)

    字符串 string 是 Redis 最简单的数据结构.Redis 所有的数据结构都是以唯一的 key 字符串作为名称,然后通过这个唯一 key 值来获取相应的 value 数据.不同类型的数据结构的 ...

  6. 寻找一个字符串的重复子串 后缀数组

    什么是后缀数组 令字符串 S=S[1]S[2]...S[n]S=S[1]S[2]...S[n]{\displaystyle S=S[1]S[2]...S[n]} , S[i,j]S[i,j]{\dis ...

  7. leetcode 3. Longest Substring Without Repeating Characters 最长非重复子串的长度 滑动窗口法

    题目链接 根据我们之前介绍的滑动窗口法的解法: 滑动窗口法详解 leetcode 438. Find All Anagrams in a String 滑动窗口法 这题,我们不难解决,使用之前的模板. ...

  8. 求一个字符串中连续出现的次数最多的子串

    求一个字符串中连续出现的次数最多的子串.例如字符串"abababc",最多连续出现的为ab,连续出现三次.要和求一个字符串中的最长重复子串区分开来,还是上面的字符串,那么最长的重复 ...

  9. 剑指offer:面试题41. 数据流中的中位数

    题目:数据流中的中位数 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数 ...

最新文章

  1. updatehf.vbs:自动打补丁
  2. JAVA深入研究——Method的Invoke方法。
  3. linux 信号灯超时时间到,急!!信号灯超时时间已到错误又出来了!!!!
  4. spring-security-oauth2实现OAuth2.0服务
  5. Redis调用及使用
  6. abp执行mysql语句_在ABP模板工程中使用MySql
  7. 【Flink】Flink AscendingTimestampExtractor - Timestamp monotony violated
  8. 计算机软件工程职业道德论文,软件工程职业道德论文_软件工程_软件工程就业前景...
  9. Node.js 清洗万恶的种子
  10. 关于计算机作文的结束语,语文老师:万能作文开头30篇结尾50篇,吃透次次“满分范文”...
  11. vue3 reactive 对比 react useState 以及 ramda 和 lodash 的取舍问题
  12. mysql微信昵称特殊符号_mysql保存微信昵称特殊字符的方法
  13. 关于“Threats to Validity”的介绍
  14. iphone屏幕尺寸总结
  15. C语言基础之3:数据与C
  16. 关键字、主关键字、候选关键字
  17. 飞飞CMS采集资源-内置飞飞CMS采集接口
  18. mysql全文查询中文_MySQL-中文全文检索
  19. 网易企业邮箱技术剖析
  20. 混沌映射与动态学习的自适应樽海鞘群算法-附代码

热门文章

  1. Powershell快速入门(二) Shell编程
  2. eclipse代码自动提示
  3. 石川es6课程---4、箭头函数
  4. 汽车电池包-云100
  5. 世界32条谣言,你被骗了多少?
  6. Extjs4 actioncolumn只能显示图标,不能显示文字的暂时解决方法
  7. js 调用C#.NET后台方法 转载自:http://www.cnblogs.com/lizhao/archive/2010/11/23/1990436.html...
  8. Windows Server 2008常用优化设置
  9. 如何将Dictionary绑定到Repeater?
  10. 自动生成Mapper文件(基于Mybatis Maven插件)