求一C#算法...请教各位高手...

helong2636529 2010-10-12 11:17:42
假设list1里面数据为(1,14,15,16),list2里面数据为(1,14,16)

要求做两两配对 但不能出现重复 和两个都是同一数字的情况..

比如上面的配对完应该是 1,14 1,16 14,16 15,14 15,16 16,14

而1,1 14,14 15,15 16,16是不能出现的...14,16和16,14这种也只能存在一个..请问该怎么实现?
...全文
178 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanjiading 2010-10-12
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace test
{
class Program
{
static void Main(string[] args)
{
int[] list1 = { 1, 14, 15, 16 };
int[] list2 = { 1, 14, 16 };
string str = "";
List<string> list = new List<string> ();
for (int i = 0; i < list1.Length;i++ )
{
for (int j = 0; j < list2.Length; j++)
{
if (list1[i] != list2[j] && !list.Contains(list2[j] + "-"+list1[i]))
{
str = list1[i] + "-" + list2[j];
list.Add(str);
}
}
}

foreach (string str1 in list)
{
Console.WriteLine(str1);
}

}
}
}
  • 打赏
  • 举报
回复
感觉只要加上一个简单的判断就ok了,就是一个复杂度为O(n^2)的循环
keeya0416 2010-10-12
  • 打赏
  • 举报
回复
我觉得直接把两个 list 合并起来
然后选取所有的含 2 个元素的 子集
pyjhlovemoon 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 helong2636529 的回复:]
引用 9 楼 pyjhlovemoon 的回复:

可以在输对 配对时 对配对的数据 排下序 就样输出的 就只会有14,16,、14,16这样就可以去重了

没看懂什么意思!
[/Quote]


你不是要对list1 与list2中数据 交叉比对嘛
我的意思是配对后 你要输出到一个数组之类的地方
在输出到这个数组时 对输出的两个数据 排下序 比如小的在前面 这样子输出时 只会输出 14,16了
helong2636529 2010-10-12
  • 打赏
  • 举报
回复
对了 少写了一个15,1...配对完正确的!
lwinhong 2010-10-12
  • 打赏
  • 举报
回复
我也没有看懂什么意思
helong2636529 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 pyjhlovemoon 的回复:]

可以在输对 配对时 对配对的数据 排下序 就样输出的 就只会有14,16,、14,16这样就可以去重了
[/Quote]
没看懂什么意思!
pyjhlovemoon 2010-10-12
  • 打赏
  • 举报
回复
可以在输对 配对时 对配对的数据 排下序 就样输出的 就只会有14,16,、14,16这样就可以去重了
helong2636529 2010-10-12
  • 打赏
  • 举报
回复
没人了啊? 这算不算二叉树哦?
helong2636529 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 try_best7 的回复:]

LZ的配对能否说得在详细点,能否列出所有正确的配对。
[/Quote]

列出了啊...仔细看嘛 主要就是1,1 2,2这种不能出现..16,14 和14,16这种只能出现一次!
try_best7 2010-10-12
  • 打赏
  • 举报
回复
LZ的配对能否说得在详细点,能否列出所有正确的配对。
helong2636529 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 damjmk2 的回复:]

建立一个数组 循环判断...比较有重复的就不添加
[/Quote]
我会判断1,1 2,2这种重复 但是16,14 和14,16这种怎么判断?
damjmk2 2010-10-12
  • 打赏
  • 举报
回复
建立一个数组 循环判断...比较有重复的就不添加
raymond123456 2010-10-12
  • 打赏
  • 举报
回复
算法学习者 帮顶!
helong2636529 2010-10-12
  • 打赏
  • 举报
回复
另外我用的.net2.0 3.0的一些方法就不考虑了!
helong2636529 2010-10-12
  • 打赏
  • 举报
回复
我的意思是list1装的是1 14 15 16 哈...分开的!

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧