某校2016专硕算法设计
原创
©著作权归作者所有:来自51CTO博客作者图图是只猫的原创作品,请联系作者获取转载授权,否则将追究法律责任
题目
给定一个n个元素的整数数组A。A中连续相等的元素所形成的数据区域成为“块"。请设计算法,求A中最大长度的块。
Java实现
以下代码评论区指正存在问题,go语言做了更正,有兴趣的可研究下问题出在哪
public static void test06(){
int[] a = new int[]{1,1,3,3,3,3,3,6,6,6,6,2,0};
int len = 1;
int newLen = 1;
for (int i = 1; i < a.length; i++) {
if (a[i] == a[i-1]){
newLen++;
}else {
if (newLen > len) len = newLen;
newLen = 1;
}
}
System.out.println(len);
}
Go实现
func block(arr []int) int {
length := 1
newLength := 1
for i := 1; i < len(arr); i++{
if arr[i] == arr[i-1] {
newLength++
}else {
newLength = 1
}
if newLength > length {
length = newLength
}
}
return length
}