On Thursday, 21 December 2017 at 00:52:29 UTC, Nicholas Wilson wrote:
On Thursday, 21 December 2017 at 00:23:08 UTC, Steven Schveighoffer wrote:

I'm assuming here indices is sorted? Because it appears you expect that in your code. However, I'm going to assume it isn't sorted at first.

auto sortedIdxs = indices.assumeSorted; // also could be =

It's not going to be as good as hand-written code, complexity wise, but it's definitely shorter to write :)

-Steve
If indices is sorted with no duplicates and random access then you can do it in linear time.


Ah yes, I guess sorted and unique as well would be the expected input. But nice to see the handling of non-sorted indices.

I tried to search for an assumeUnique function as well (the assumeSorted one was nice to see) but it's not what I thought it'd be - seems to be more of an assumeUnaliased. And I guess there's no assumeUniqueElements.

And the filter approach is nice! :) (just need to account for the last ii++ (when filter comes back in I think one case would be ii == indices.length and you'd get a range error)

Thanks for the feedback!

Reply via email to