*[codility]Peaks
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的更多相关文章
- codility flags solution
How to solve this HARD issue 1. Problem: A non-empty zero-indexed array A consisting of N integers i ...
- Codility NumberSolitaire Solution
1.题目: A game for one player is played on a board consisting of N consecutive squares, numbered from ...
- GenomicRangeQuery /codility/ preFix sums
首先上题目: A DNA sequence can be represented as a string consisting of the letters A, C, G and T, which ...
- 【BZOJ-3545&3551】Peaks&加强版 Kruskal重构树 + 主席树 + DFS序 + 倍增
3545: [ONTAK2010]Peaks Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1202 Solved: 321[Submit][Sta ...
- *[codility]Country network
https://codility.com/programmers/challenges/fluorum2014 http://www.51nod.com/onlineJudge/questionCod ...
- *[codility]AscendingPaths
https://codility.com/programmers/challenges/magnesium2014 图形上的DP,先按照路径长度排序,然后依次遍历,状态是使用到当前路径为止的情况:每个 ...
- *[codility]MaxDoubleSliceSum
https://codility.com/demo/take-sample-test/max_double_slice_sum 两个最大子段和相拼接,从前和从后都扫一遍.注意其中一段可以为0.还有最后 ...
- *[codility]Fish
https://codility.com/demo/take-sample-test/fish 一开始习惯性使用单调栈,后来发现一个普通栈就可以了. #include <stack> us ...
- *[codility]CartesianSequence
https://codility.com/programmers/challenges/upsilon2012 求笛卡尔树的高度,可以用单调栈来做. 维持一个单调递减的栈,每次进栈的时候记录下它之后有 ...
随机推荐
- composer安装yii2或者laravel报错
大概的信息就是提示让登陆github,然后就报错了 Could not fetch https://api.github.com/authorizations, enter your GitHub c ...
- Java对象校验框架之Oval
只要有接口,就会有参数的校验,目前开源的校验框架已经非常多了,不过不得不提一下Oval.OVal 是一个可扩展的Java对象数据验证框架,验证的规则可以通过配置文件.Annotation.POJO ...
- openerp经典收藏 深入理解对象(转载)
深入理解对象(转载) 原文地址:http://shine-it.net/index.php/topic,2159.0.htmlhttp://blog.sina.com.cn/s/blog_57ded9 ...
- Python 的列表解析和生成表达式的异同
Python中的列表解析和生成表达式是非常好的特性,他们的形式相似,但是应用场景不太一样. 相似点 列表解析和生成表达式最大的相似点是使用形式: [expr for iter_var in ite ...
- iblog语法高亮示例
-------------------------------------------------------------------------------------- iblog 是一款 Sub ...
- Microsoft server software support for Microsoft Azure virtual machines
http://support.microsoft.com/kb/2721672/en-us Article ID: 2721672 - Last Review: November 22, 2014 ...
- RethinkDB
RethinkDB最早是作为一个对SSD进行专门优化的MySQL存储引擎出现的,其特点在于对SSD的充分利用.而目前RethinkDB已经脱离MySQL成为一个独立的存储. RethinkDB目前支持 ...
- <亲测好使>mac os 安装mcrypt扩展
以前安装opencart的时候倒是不需要mcrypt 这个库.但是新版本需要了.加上自己的 是mac环境.当时闲麻烦,就一直没装.这次下午就寻思给装上吧! 1.首先你要先安装xcode这个工具.不然没 ...
- iOS 进阶 第十三天(0414)
0414 画线.圆和圆弧的第二种方法 5中方法画矩形: 第二种画图形的方法: 之前做的方法都是先把要画的元素缓存到图形上下文CGConteextRef中去,现在第二种方法也缓存到CGPath中去.其实 ...
- Linux 系统 网络配置
Linux 系统 网络配置 配置Linux系统网络的方法有几种,这里介绍本人常用的两种. 第一种:使用命令ifconfig配置,具体用法:Ipconfig ethx x.x.x.x net ...