Jon*_*Jon 46 c# linq algorithm
我有一个List<int>例如1,2,4,7,9.
我的范围从0到10.
有没有办法确定该序列中缺少的数字?
我认为LINQ可能提供一个选项,但我看不到一个
在现实世界中,我的列表可以包含100,000个项目,因此性能是关键
Dar*_*rov 114
var list = new List<int>(new[] { 1, 2, 4, 7, 9 });
var result = Enumerable.Range(0, 10).Except(list);
Run Code Online (Sandbox Code Playgroud)
And*_*tan 11
将要检查的范围转换为HashSet:
public IEnumerable<int> FindMissing(IEnumerable<int> values)
{
HashSet<int> myRange = new HashSet<int>(Enumerable.Range(0,10));
myRange.ExceptWith(values);
return myRange;
}
Run Code Online (Sandbox Code Playgroud)
将返回不在的值values.