function val=longrun(a)
a_len=length(a); %计算a的长度
c=ones(a_len,1); %初始化对应位置的连续次数
for num_a=1:(a_len-1)
n_val=1;
for next_a=(num_a+1):a_len
if a(num_a)==a(next_a) %如果这个数字和后面的数字相等,则n_val+1,并进行下一次循环
n_val=n_val+1;
c(num_a)=n_val;
else
c(num_a)=n_val; %如果这个数字和后面数字不等,则把当前的n_val赋值给对应数字的连续次数,并跳出内层for循环
break
end
end
end
a_conti=max(c); %找出c数组中最大的连续次数
max_location=find(c==a_conti); %对应最大连续次数的位置
val=a(max_location); %找出对应在a中的位置
end
Test | Status | Code Input and Output |
---|---|---|
1 | Pass |
a = [1 2 2 2 1 3 2 1 4 5 1];
y_correct = 2;
assert(isequal(longrun(a),y_correct))
|
2 | Pass |
a = [1 1 1 2 2 2 3 3 3];
y_correct = [1 2 3];
assert(isequal(longrun(a),y_correct))
|
3 | Pass |
a = [-2 -2 -2 -2 -1 0 3];
y_correct = -2;
assert(isequal(longrun(a),y_correct))
|
4 | Pass |
a=[0 1 1 1 0 2 2 0 1 1 1 0];
y_correct = [1 1];
assert(isequal(longrun(a),y_correct))
|
5 | Pass |
a=[3 3 3 2 2 1 6]';
y_correct=3;
assert(isequal(longrun(a),y_correct))
|
6 | Pass |
a=[3 3 3 2 2 2 1 6]';
y_correct=[3 2]';
assert(isequal(longrun(a),y_correct))
|
7 | Pass |
a=[1 2 3 4 5]';
y_correct=a;
assert(isequal(longrun(a),y_correct))
|
4106 Solvers
Back to basics 3 - Temp Directory
328 Solvers
Calculate the Number of Sign Changes in a Row Vector (No Element Is Zero)
225 Solvers
320 Solvers
1800 Solvers
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!