【发布时间】:2010-02-25 05:38:51
【问题描述】:
基本解决方案如下所示:
bool sortTest(int[] numbers, int target)
{
Array.Sort(numbers);
for(int i = 0; i < numbers.Length; i++)
{
for(int j = numbers.Length-1; j > i; j--)
{
if(numbers[i] + numbers[j] == target)
return true;
}
}
return false;
}
现在我对 LINQ 很陌生,但这是我目前所写的:
var result = from num in numbers
where numbers.Contains(target -num)
select num;
if (result.Count() > 0)
return true;
return false;
现在我遇到了以下示例的问题:
数组:1、2、4、5、8
目标:16
它应该返回 false,但它正在捕获 16-8=8。那么我该如何不让它在包含检查中注意到自己呢?或者我可以每次在不包含我正在使用的数字的查询中创建第二个数组(从而解决问题)?
提前致谢。
【问题讨论】: