Given a vector x, return a vector r that indicates the run length of any value in x. Each element in r shows how many times the corresponding element in x has appeared consecutively.
Example:
Input x = [5 3 3 1 0 9 9 4 4 4 4 5 1 2 2] Output r = [1 1 2 1 1 1 2 1 2 3 4 1 1 1 2]
Solution Stats
Problem Comments
6 Comments
Solution Comments
Show comments
Loading...
Problem Recent Solvers657
Suggested Problems
-
Given an unsigned integer x, find the largest y by rearranging the bits in x
1992 Solvers
-
Reverse the Words (not letters) of a String
471 Solvers
-
Back to basics 21 - Matrix replicating
1796 Solvers
-
Check if number exists in vector
13844 Solvers
-
492 Solvers
More from this Author54
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
The first test case seems to be invalid answer. Please check it
Hi Wenwu: Could you be more specific about what you think the problem is?
See FileExchange's seqle . (disclaimer: I'm the author)
False exemple description
y=[];
for i = 1:length(delta)
test = max(delta(1:i));
maxsofar=max(delta(1:i-1));
test2=min(delta(1:i));
minsofar=min(delta(1:i-1));
if test == delta(i) && delta(i)~= maxsofar
y=[y,1];
elseif test2 == delta(i) && delta(i)~= minsofar
y=[y,-1];
else
y=[y,0];
end
end
this code despite its giving correct results it is rejected by the tests...
There are reasonable situations that are not addressed by the problem definition or tested for.
IE if there was a case such as x = [5 3 3 1 3 3 3] is the expected answer
r = [1 1 2 1 1 2 3] or
r = [1 1 2 1 2 2 3]?