Having a slices.Contains check within a for loop has a complexity of O(n*m), with a worst case scenario of O(n^2) for when both collections have the same size.
This is because slices.Contains internally runs just a regular loop, checking for equality element by element.
Instead, this diff changes every occurence of this pattern to converting the collection we compare against to a set, and then running a faster lookup against it.
Having a
slices.Contains
check within afor
loop has a complexity ofO(n*m)
, with a worst case scenario ofO(n^2)
for when both collections have the same size.This is because
slices.Contains
internally runs just a regular loop, checking for equality element by element.Instead, this diff changes every occurence of this pattern to converting the collection we compare against to a set, and then running a faster lookup against it.