Peaks【遗留问题】

 1         /// <summary>
 2         /// Solution
 3         /// 通过率 83/60
 4         /// </summary>
 5         /// <param name="A"></param>
 6         /// <returns></returns>
 7         public int solution(int[] A)
 8         {
 9             int length = A.Length;
10             bool[] flagArr = new bool[length];
11             int peakNum = 0;
12
13             for (int i = 1; i < length - 1; i++)
14             {
15                 if (A[i] > A[i - 1] && A[i] > A[i + 1])
16                 {
17                     flagArr[i] = true;
18                     peakNum++;
19                 }
20             }
21
22             int div = 0;
23             int divLength = 0;
24
25             for (int bloks = peakNum; bloks > 1; bloks--)
26             {
27                 if (length % bloks == 0)
28                 {
29                     div = length / bloks;
30                     divLength = div;
31                     for (int i = 0; i < divLength; i++)
32                     {
33                         if (flagArr[i] == true && divLength < length)
34                         {
35                             i = divLength;
36                             divLength += div;
37                         }
38                     }
39                     if (divLength == length)
40                         return bloks;
41                 }
42             }
43
44             if (peakNum > 0)
45                 return 1;
46             else
47                 return 0;
48         }
时间: 2024-12-28 16:26:41

Peaks【遗留问题】的相关文章

遗留代码的测试

遗留代码的测试 在大多时候代码的测试很难,因为很多代码无法进行参数注入,那么这个时候有一款不受限的隔离框架TypeMock供你使用,不过遗憾这款软件是付费的一个隔离框架,有15天的免费使用权,如果能解决你现有的问题我想这份费用并不能算多.TypeMock的官方下载http://www.typemock.com/.下面开始看看TypeMock是怎么样使用的. 1:伪造一个静态的方法来看一个例子 被测试的静态方法 public static int DoSomethingSpecialOnALeap

Linq扩展最后遗留之SelectMany,Zip,SequenceEqual源码分析

Linq扩展最后遗留之SelectMany,Zip,SequenceEqual源码分析 一: AsParallel [并行化查询] 这个函数的功效就是将计算结果多线程化.[并行计算] =>[多核] 二:AsQueryable [将lambda表达式作为数据结构存储起来,Expresstion 表达式树] 三:Join 多表关联操作,我们可以用"查询关键字"解决. 为了更加的脱俗易懂,我们建议用人性化的"查询关键字"来解决这个复杂的Join,lambda. 四:

在Swift中使用遗留的C API

Swift的类型系统的设计目的在于简化我们的生活,为此它强制用户遵守严格的代码规范来达到这一点.毫无疑问这是一件大好事,它鼓励程序员们编写 更好更正确的代码.然而,当Swift与历史遗留的代码库.特别是C语言库进行交互时,问题出现了.我们需要面对的现实是许多C语言库滥用类型,以至于它 们对Swift的编译器并不友好.苹果的Swift团队的确花了不少功夫来支持C的一些基础特性,比如C字符串.但当在Swift中使用历史遗留的C语言 库时,我们还是会面临一些问题.下面我们就来解决这些问题. 在开始之前

Science14年的聚类论文——Clustering by fast search and find of density peaks

这是一个比较新的聚类方法(文章中没看见作者对其取名,在这里我姑且称该方法为local density clustering,LDC),在聚类这个古老的主题上似乎最近一些年的突破不大,这篇文章算是很好的了,方法让人很有启发(醍醐灌顶),并且是发表在Science上,受到的关注自然非常大. 本文的核心亮点:1是用比较新颖的方法来确定聚类中心,2是采用距离的local density来进行聚类的划分.在这两点中,常见的Kmeans算法采用的方法是:用每一类的均值作为中点,用距离的最近的点来确定聚类划分

对历史遗留代码的维护和再开发

一.时间宽松时的代码维护 对于新人,一般都会留出一段时间进行代码的接手,那么对于如何处理接到手中的代码,是不是只是看看代码.写写心得,还是能够利用这段空闲时间,煅炼提升自己,我期望是后者,结合公司部门的情况,对这种情况进行个人阐释: 1.对现有代码的熟悉.若是对拿到手中的代码,都不知道是做什么的,有什么用,可能就什么意义也没有,后面的也不用看了. 2.加入或者补充测试用例,若是没有测试用例,后面的重构基本上是没办法进行判断是否正确的. 3.用测试用例对代码进行测试,以期达到相关效果和理解代码逻辑

bzoj 3551: [ONTAK2010]Peaks加强版

Description [题目描述]同3545 Input 第一行三个数N,M,Q. 第二行N个数,第i个数为h_i 接下来M行,每行3个数a b c,表示从a到b有一条困难值为c的双向路径. 接下来Q行,每行三个数v x k,表示一组询问.v=v xor lastans,x=x xor lastans,k=k xor lastans.如果lastans=-1则不变. Output 同3545 Sample Input Sample Output HINT [数据范围]同3545 Source

bzoj3551 [ONTAK2010]Peaks加强版

Description //[题目描述]同3545 在Bytemountains有N座山峰,每座山峰有他的高度h_i.有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越难走,现在有Q组询问,每组询问询问从点v开始只经过困难值小于等于x的路径所能到达的山峰中第k高的山峰,如果无解输出-1. Input 第一行三个数N,M,Q. 第二行N个数,第i个数为h_i 接下来M行,每行3个数a b c,表示从a到b有一条困难值为c的双向路径. 接下来Q行,每行三个数v x k,表

珠海全志公司的 Linux 内核遗留了后门

据外媒 arstechnica 报道,一家中国的芯片级系统厂商全志(allwinner) 在其开发的产品中携带的内核里遗留了一个 root 后门.全志的处理器芯片用在很多低端的 Android 平板.机顶盒.基于 ARM 的 PC 等等之上.而这个后门非常容易获得,只需要给一个未见于文档的调试进程发送一个字符串“rootmydevice” 即可获取该设备的 root 权限. 该后门可能是开发人员调试后忘记移除的.全志公司在知道此消息后,已经从其公司的 Github 账户上删除了相关文件. 该公司

外包公司做遗留项目有意思么?

过年后,在目前公司的工作就要告一段落了,又恰逢年终,终觉得还是要总结点什么,来个了断吧~ 背景介绍 考虑了一下,似乎技术上没有什么太多可说的,再加上外包项目也不能透露太多客户的东西.3年多做得都是同一个Account(客户)下的项目,是客户产品线下的一个数据中心产品,面向数据中心的基础设施用户,也就是国内IDC.产品提供数据中心IT基础设施运维整体解决方案, 属于行业内KVM交换机顶级品牌, 另一家也是美国厂商, 行业内剩下的就是国内中低端的深圳厂商, KVM over IP 还是较有技术含量的