2017-8-31美团笔试交错序列

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sca = new Scanner(System.in );
		int len = sca.nextInt();
		int[] a = new int[len];
		for(int i =0; i<len;i++){
			a[i] = sca.nextInt();
		}
		int sum =1;
		int[] temp = new int[len];
		for(int i=0;i<len;i++) {
			temp[i] = 1;
		}
		for(int i =1; i<len;i++){
			int j =i-1;
			while(j>=0 && a[i]==a[j]) --j;
			if(j>=0) {
				temp[i]+=temp[j];
			}
			
		}
		int max = 1;
		for(int i=0;i<len;++i) {
				max = Math.max(max,temp[i]);
		}
		System.out.println(max);
	}
}

全部评论
什么岗位  后台岗位不是没碰到这个
点赞 回复 分享
发布于 2017-08-31 22:57
我还以为就我一个人是做的这个题!哈哈哈哈…原来你也是这个…
点赞 回复 分享
发布于 2017-08-31 23:17
这道题是不是可以简单来算:最长子串的首字母应该是和输入子串的首字母相同(除非有一个同样长度的0开头子串),那么接下来遍历字符串,交错的判断就可以了。 int length = 1; int curNum = p[0]; for (int i = 1; i < p.length; i++) { if (p[i]!=curNum) { length++; curNum = p[i]; } }
点赞 回复 分享
发布于 2017-08-31 23:27
这是动态规划的题,每一位都维护两个标志,一个是到本位为止以0为结尾的交替数列的最大长度,和以1结尾的交替数列的最大长度。
点赞 回复 分享
发布于 2017-09-01 13:57
前端也碰到了。。
点赞 回复 分享
发布于 2017-09-01 13:58

相关推荐

一名愚蠢的人类:多少games小鬼留下了羡慕的泪水
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
Noob1024:一笔传三代,人走笔还在
点赞 评论 收藏
分享
最近和朋友聊天,她说了句让我震惊的话:"我发现我连周末点外卖都开始'最优解'了,一定要赶在高峰期前下单,不然就觉得自己亏了。"这不就是典型的"班味入侵"吗?工作思维已经渗透到生活的方方面面。
小型域名服务器:啊?我一直都这样啊?我还以为是我爱贪小便宜呢?每次去实验室都得接一杯免费的开水回去,出门都得规划一下最短路径,在宿舍就吃南边的食堂,在实验室就吃北边的食堂,快递只有顺路的时候才取。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务