https://codility.com/demo/take-sample-test/peaks

http://blog.csdn.net/caopengcs/article/details/17491791

其实可以做到O(n)

#include <iostream>
#include <sstream>
using namespace std; int solution(vector<int> &A) {
int n = A.size();
int prevPeak = -1;
int maxDist = -1;
vector<int> peaks(n);
for (int i = 0; i < n; i++) {
if (i == 0) {
peaks[i] = 0;
} else if (i == n - 1) {
peaks[i] = peaks[i - 1];
} else if (A[i] > A[i - 1] && A[i] > A[i + 1]) {
peaks[i] = peaks[i - 1] + 1;
if (prevPeak == -1) {
prevPeak = i;
} else {
maxDist = max(maxDist, i - prevPeak);
prevPeak = i;
}
} else {
peaks[i] = peaks[i - 1];
}
}
if (peaks[n - 1] == 0) return 0;
if (peaks[n - 1] == 1) return 1;
for (int dist = maxDist / 2; dist <= n; dist++) {
if (n % dist != 0)
continue;
bool found = true;
for (int i = n - 1; i - dist > 0; i -= dist) {
if (peaks[i] == peaks[i - dist]) {
found = false;
break;
}
}
if (found) return n / dist;
}
return 0;
}

  

*[codility]Peaks的更多相关文章

  1. codility flags solution

    How to solve this HARD issue 1. Problem: A non-empty zero-indexed array A consisting of N integers i ...

  2. Codility NumberSolitaire Solution

    1.题目: A game for one player is played on a board consisting of N consecutive squares, numbered from ...

  3. GenomicRangeQuery /codility/ preFix sums

    首先上题目: A DNA sequence can be represented as a string consisting of the letters A, C, G and T, which ...

  4. 【BZOJ-3545&3551】Peaks&加强版 Kruskal重构树 + 主席树 + DFS序 + 倍增

    3545: [ONTAK2010]Peaks Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1202  Solved: 321[Submit][Sta ...

  5. *[codility]Country network

    https://codility.com/programmers/challenges/fluorum2014 http://www.51nod.com/onlineJudge/questionCod ...

  6. *[codility]AscendingPaths

    https://codility.com/programmers/challenges/magnesium2014 图形上的DP,先按照路径长度排序,然后依次遍历,状态是使用到当前路径为止的情况:每个 ...

  7. *[codility]MaxDoubleSliceSum

    https://codility.com/demo/take-sample-test/max_double_slice_sum 两个最大子段和相拼接,从前和从后都扫一遍.注意其中一段可以为0.还有最后 ...

  8. *[codility]Fish

    https://codility.com/demo/take-sample-test/fish 一开始习惯性使用单调栈,后来发现一个普通栈就可以了. #include <stack> us ...

  9. *[codility]CartesianSequence

    https://codility.com/programmers/challenges/upsilon2012 求笛卡尔树的高度,可以用单调栈来做. 维持一个单调递减的栈,每次进栈的时候记录下它之后有 ...

随机推荐

  1. 启语外语培训网SEO历程

    网站开发完成已经好长时间了,但收录一直上不去,排名也上不去.我这篇文章主要是分析一下网站的SEO历程 网址:http://waiyupx.cheer-edu.net/School/School-5.h ...

  2. Nginx+Center OS 7.2 开机启动设置(转载)

    centos 7以上是用Systemd进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度.关 ...

  3. 浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题

    以下是对php中fwrite写入txt文件的时候用 \r\n不能换行的问题进行了介绍,需要的朋友可以过来参考下今天遇到了一个问题就是用fwrite写入txt文件的时候用 rn不能换行试了很久都没找到办 ...

  4. PHP版本中的VC6,VC9,VC11,TS,NTS区别

    以windows为例,看看下载到得php zip的文件名 php-5.4.4-nts-Win32-VC9-x86.zip VC6:legacy Visual Studio 6 compiler,是使用 ...

  5. C#生成随机字符串

    //<summary> ///得到随机字符. ///</summary> ///<param name="intLength">Length o ...

  6. 【quartz】 入门

    把技术债务给还了,首先来一个最简单的demo: 2.x版比1.x有很多改进,1.x基于fw1.2: 2.x基于fw3.5以上:语法上有很大的不同,摒弃了很多1.x的很多东西: 直接以2.x来demo ...

  7. iOS JSON解析

    解析json成dic对象 -(void)fetchedData:(NSData*)responseData {//parse out the json dataNSError* error; NSDi ...

  8. [转]TCP、UDP数据包大小的确定

       TCP.UDP数据包大小的确定   http://blog.163.com/jianlizhao%40126/blog/static/1732511632013410101827640/   U ...

  9. 2016 系统设计第一期 (档案一)MVC bootstrap model弹出子页面

    通过bootstrap  弹出modal-dialog 子页面 ,例如我要弹出子页面:areaitem_sub_One.html. 具体步骤如下: 第一步:新建 areaitem_sub_One.ht ...

  10. div+css布局细节问题

    cursor: pointer;在chrome里支持,hand不支持