j-i 绝对值<=k 即可。我的方法有个别测试案例不通过,以为是用例错了,先记录于此,后期读懂题意谨记修改。
bool b = false; bool res = false; int add = 0; int pps = 0;
var dic = new Dictionary<int, int>();
foreach (var item in nums)
{
if (dic.ContainsKey(item))
{
pps = item;
b = true;
break;
}
else
{
dic[item] = add++;
}
}
if (b)
{
foreach (var item in dic)
{
if (item.Key == pps)
{
if (Math.Abs(item.Value - add) <= k)
{
return res = true;
}
}
}
}
return res;
public static void Main(string[] args)
{
int[] s = new int[] { 1, 2, 3, 1, 2, 3 }; int k = 2;
bool res= ContainsNearbyDuplicate(s,k);
Console.Write(res);
Console.ReadKey();
}