方法:
private static bool HasNearRepeatedValues(List<int> nodes)
{
for (int i = 0; i < nodes.Count; i++)
{
var curNode = nodes[i];
bool findDif = false;
for (int j = i + 1; j < nodes.Count; j++)
{
var nextNode = nodes[j];
if (curNode != nextNode)
{
findDif = true;
}
else
{
if (findDif) return true;
else i++;
}
}
}
return false;
}
调用:
using System;
using System.Collections.Generic;
namespace Tests
{
public class TestList
{
public static void Test()
{
var arr1 = new List<int>
{
1,1,1,2,2,5,5,5,5,6,6,7,7,7,7,6,8,8,8,4,4,
};
var arr2 = new List<int>
{
1,1,1,2,2,5,5,5,5,6,6,7,7,7,7,9,8,8,8,4,4,
};
var arr3 = new List<int>
{
1,2,3,4,6,2,4,5,
};
Console.WriteLine(HasNearRepeatedValues(arr1));//true
Console.WriteLine(HasNearRepeatedValues(arr2));//false
Console.WriteLine(HasNearRepeatedValues(arr3));//true
Console.ReadLine();
}
}
}