如题:有个数组
int[] a={1,2,3,3,3,4,3,5,5,6,6,6,7,8,6}
怎么找出连续相同的数的位置
比如第一个连续相同的值,是3,从下标2,开始到下标4结束
第二个连续相同的值是5 从下标 7到下标8
------解决思路----------------------
static void Ttttt()
{
int[] a = { 1, 2, 3, 3, 3, 4, 3, 5, 5, 6, 6, 6, 7, 8, 6 };
int nowValue = a[0];
int startIndex = 0;
int endIndex = 1;
for (var i = 1; i <= a.Length; i++)
{
int v;
if (i < a.Length)
{
v = a[i];
}
else
{
v = a[a.Length - 1] - 1;
}
if (v != nowValue)
{
endIndex = i - 1;
Console.WriteLine("Num:" + nowValue + " StartIndex:" + startIndex + " EndIndex:" + endIndex);
nowValue = v;
startIndex = i;
}
}
}
------解决思路----------------------
List<int> li = new List<int>();
int[] a = { 1, 2, 3, 3, 3, 4, 3, 5, 5, 6, 6, 6, 7, 8, 6 };
int prea = -1;
bool lx = false;
for (int i = 0; i < a.Length; i++)
{
if (prea == a[i])
{
if (lx == false)
{
li.Add(i - 1);
}
lx = true;
}
else
{
lx = false;
}
prea = a[i];
}
------解决思路----------------------
int[] a = { 1, 2, 3, 3, 3, 4, 3, 5, 5, 6, 6, 6, 7, 8, 6 };
int s = 0;;
for (int i = 1; i < a.Length; i++)
{
if (a[i] != a[s])
{
if(i-s > 1) Console.WriteLine("{0} 从 {1} 开始,到 {2} 结束", a[s], s, i-1);
s = i;
}
}
