当前位置: 代码迷 >> C# >> 思路,找出数组中连续相同值的起止位置
  详细解决方案

思路,找出数组中连续相同值的起止位置

热度:492   发布时间:2016-05-05 03:38:31.0
求一个思路,找出数组中连续相同值的起止位置
如题:有个数组
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;
                }
            }
  相关解决方案