Cody

Problem 956. Unique: Enhanced Performance - Large and Wide Array - Speed Improvement (66% savings)

Solution 730496

Submitted on 7 Sep 2015 by Peng Liu
• Size: 47
• This is the leading solution.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test Status Code Input and Output
1   Pass
%% feval(@assignin,'caller','score',20000);

2   Pass
%% % Warm-Up Calls and functionality check tic c=randi(4,1024,48,'uint8')-1; out = unique_rows_fast(c); assert(isequal(unique(c,'rows'),out)) c=randi(4,2048,48,'uint8')-1; out = unique_rows_fast(c); assert(isequal(unique(c,'rows'),out)) c=randi(4,4096,48,'uint8')-1; out = unique_rows_fast(c); assert(isequal(unique(c,'rows'),out)) toc

Elapsed time is 0.064840 seconds.

3   Pass
%% tic c=randi(4,4000000,48,'uint8')-1; toc ta=clock; out = unique_rows_fast(c); t1=etime(clock,ta)*1000; tic assert(isequal(unique(c,'rows'),out)) % toc t2=min(20000,t1); % unique scores 18.1 sec fprintf('Actual Time = %.0f msec\n',t1) feval(@assignin,'caller','score',floor(t2));

Elapsed time is 3.217613 seconds. Elapsed time is 9.829962 seconds. Actual Time = 2458 msec