short[] Data_1 = new short[10] { 1, 1, 2, 2, 2, 3, 3, 3, 3, 3 };
如上所示,第一层有2个1,第二层有3个2,第三层有5个3.
需要将这三个结果放入data[]中,即要得到data[0]=2,data[1]=3;data[2]=5;
写的程序过于繁杂,看有没有简单的实现方式,无奈请教大家.请将代码贴上,谢谢

解决方案 »

  1.   

    short[] Data_1 = new short[13] { 1, 1, 2, 2, 2, 3, 3, 3, 3, 3 ,4,4,5};
                int ii=0;
                int n = 0,nn = 0;
                for(int i=0;i<12;i++)
                {
                   
                    if (Data_1[i] == Data_1[i + 1])
                    {
                        n = i + 2;
                    }
                    else
                    {
                        
                        Data_redials[ii] = n-nn;
                        ii++;
                        nn = 0;
                        for (int u = 0; u < ii; u++)
                        {
                            nn += Data_redials[u];
                        }
                    }
                    
                }
    我是采用这种方式实现的,但总觉得走了弯路,有没有更简单的代码啊?请赐教
      

  2.   

    Data_1 的数值是定死的 什么意思?就只有1,2,3这三种数字还是说长度是定死的