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-09-01 13:58
这是动态规划的题,每一位都维护两个标志,一个是到本位为止以0为结尾的交替数列的最大长度,和以1结尾的交替数列的最大长度。
点赞 回复 分享
发布于 2017-09-01 13:57
这道题是不是可以简单来算:最长子串的首字母应该是和输入子串的首字母相同(除非有一个同样长度的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
我还以为就我一个人是做的这个题!哈哈哈哈…原来你也是这个…
点赞 回复 分享
发布于 2017-08-31 23:17
什么岗位  后台岗位不是没碰到这个
点赞 回复 分享
发布于 2017-08-31 22:57

相关推荐

09-12 18:28
门头沟学院 Java
网友描述的太精准了👍
迷茫的大四🐶:不管活脏还是累,钱到位就行,钱到位啥都不用抱怨
投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
鼠鼠能上岸吗:进行中是秋招大项目进行中,你还可以选别的岗位;已结束是这个岗位流程结束了;筛选中就是在简历筛选环节没hr捞
投递美团等公司10个岗位
点赞 评论 收藏
分享
来!
G了的牛可乐很爱吃烤...:百度面试官 给我说, 十月后开奖,现在都在泡池子
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务