日期:2014-05-17  浏览次数:20788 次

C# 高分求个算法
一 二 三
1  7  9
2  4  9
2  1  8
5  7  0
3  4  9
7  8  2

我想要把这些数字处理成

每一行数据都判断。。哪个号码现在的距离
比如第一行 1距离现在是6 ,2距离现在是5 ,5距离现在是3 ,3距离现在是2,,7距离现在是1.我要重新排序的到最高的2位,也就是要得到1-6次,2-4次 

最终显示

第一行:1-6次,2-4次
第二行:1-4次,7-3次
第三行:8-4次,0-3次

------解决方案--------------------
终于看明白了

我要重新排序的到最高的2位,也就是要得到1-6次,2-4次 

//我要重新排序得到最高的2位,也就是要得到1-6次,2-4次 

最高两位  意思是距离这一列最下方即将出现的数字的距离   最大的两个

比如

一 二 三
1  7  9
2  4  9
2  1  8
5  7  0
3  4  9
7  8  2
x  y  z

1距离x有6个距离  //楼主这样说的。。。没办法

2距离x有有5个距离    

第二个2距离x--4
5--3
3--2
7--1

由此可得楼主  ---得到最高的2位    6和5距离 满足

分别对应楼主   第一行:1-6次,2-4次这个答案

鼓掌
------解决方案--------------------
List<int> L_1 = new List<int> { 1, 2, 2, 5, 3, 7 };
            List<int> Res = new List<int>();
            for (int i = 0; i < 10; i++)
            {
                int Tempi = L_1.FindLastIndex(delegate(int s) { return s == i; });
                if (Tempi >= 0)
                    Res.Add(6 - Tempi);
                else
                    Res.Add(-1);
            }


Res中索引对应的距离

这样就没压力了吧

下面的你自己写吧