求算法 3->78->1213->1721->25有这样一组数据要求得到的结果是 3->7 18->17 221->15 1 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 3->78->1213->1721->25有这样一组数据要求得到的结果是 3->7 18->17 221->15 1你这问题 提的,上面8->12 下面8->17 另外 如果照你这么写的 无需算法前面是奇数后面是1前面是偶数 后面是2你给的数字太少了 本帖最后由 caozhy 于 2011-09-01 09:06:24 编辑 奥 写错了是21->25 意思就是把这组数据中相连的 如:8->12 13->17 只取8->17 不相连的提出来就行 给的信息量有点少, 而且我怀疑下面一组的 21->15 是打错了, 应该是21 -> 25 吧.这样的话,应该就是以4为一步,求 A -> B 有几步. 算法简单了. int Step(int a, int b){ return (b-a)/4;} 这个啊,你看你这些数据像什么,链表如果用链表来处理,应该能解决3->7 两个节点8->12 又两个节点13->17 两个节点,但是节点前面有连续节点21->25 节点前面没有连续节点递归节点来做吧,3->7 8->17 节点长度变成221->15 比较笨的方法,用hashtable 实现了,不知道是不是满足你的兽欲 static Hashtable hash = new Hashtable(); static int[] Array = { 1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,17,21,22,23,24,25 }; static void Main(string[] args) { Sort(); for (int i = 0; i < Array.Length; i++) { if (i == 0) hash.Add(Array[i], null); else { int m = Recursion(i); //hash.Add(Array[m], Array[i]); if (m == -1) { hash[Array[i]] = null; } else hash[Array[(int)m]] = Array[i]; } } } public static int Recursion(int i) { if (i == 0) return 0; else { if (Array[i] - 1 == Array[i - 1]) return Recursion(i - 1); else return i; } } public static void Sort() { int temp = 0; for (int i = 0; i < Array.Length; i++) { for (int j = 0; j < i; j++) { if (Array[i] < Array[j]) { temp = Array[i]; Array[i] = Array[j]; Array[j] = temp; } } } } //hash.Add(Array[m], Array[i]); if (m == -1) { hash[Array[i]] = null; } else这部分貌似不用要了 请教高手帮我看下ORACLE下C#的带参数的SQL查询问题 xpath相关 请教几个winform界面的问题 C#如何完成语音朗读功能? 接口的方法在第一层类里应该不能私有啊?请帮我看看这是怎么回事,应该怎么理解? 复杂的查询 怎样实现带有行线的TextBox?? 请问如何拦截远程通信数据?(HTTP协议的) 求一个正则表达式,关于替换的!(急) InstanceDescriptor 求助适配器和数据集的用法? 点快捷方式结果弹出windows installer
8->12
13->17
21->25有这样一组数据
要求得到的结果是
3->7 1
8->17 2
21->15 1
你这问题 提的,上面8->12 下面8->17 另外 如果照你这么写的 无需算法前面是奇数后面是1
前面是偶数 后面是2
你给的数字太少了
是21->25 意思就是把这组数据中相连的 如:8->12 13->17 只取8->17 不相连的提出来就行
int Step(int a, int b)
{
return (b-a)/4;
}
如果用链表来处理,应该能解决
3->7 两个节点
8->12 又两个节点
13->17 两个节点,但是节点前面有连续节点
21->25 节点前面没有连续节点递归节点来做吧,3->7
8->17 节点长度变成2
21->15
比较笨的方法,用hashtable 实现了,不知道是不是满足你的兽欲 static Hashtable hash = new Hashtable();
static int[] Array = { 1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,17,21,22,23,24,25 };
static void Main(string[] args)
{
Sort();
for (int i = 0; i < Array.Length; i++)
{
if (i == 0)
hash.Add(Array[i], null);
else
{
int m = Recursion(i);
//hash.Add(Array[m], Array[i]);
if (m == -1)
{
hash[Array[i]] = null;
}
else
hash[Array[(int)m]] = Array[i];
}
}
} public static int Recursion(int i)
{
if (i == 0)
return 0;
else
{
if (Array[i] - 1 == Array[i - 1])
return Recursion(i - 1);
else
return i;
}
}
public static void Sort()
{
int temp = 0;
for (int i = 0; i < Array.Length; i++)
{
for (int j = 0; j < i; j++)
{
if (Array[i] < Array[j])
{
temp = Array[i];
Array[i] = Array[j];
Array[j] = temp;
}
}
}
}
if (m == -1)
{
hash[Array[i]] = null;
}
else这部分貌似不用要了