寻找最长串数据对

xxjjs 2014-06-17 01:33:25
有若干对数据,如(1,3); (3, 5); (9, 4342); (5, 532); (5, 9)
如果前一对数据的后一个数字和后一对数据的前一个数字相同,那么我们可以将这两对数据连接起来,比如上例中的(1,3) 和(3,5)

请设计一个算法,对于给出的若干对数据寻找能连接起来的最长串

比如上例中最长串是(1,3); (3, 5); (5, 9);(9, 4342)

...全文
233 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxjjs 2014-06-23
  • 打赏
  • 举报
回复
抽象了本问题, 又开了一楼:http://bbs.csdn.net/topics/390817478
xun_ying 2014-06-22
  • 打赏
  • 举报
回复
排序可以否,记录串的start和end和长度,如果暂时不能构成串,寻找下一串,比较长度,不过时间就是排序了
zy_think123 2014-06-21
  • 打赏
  • 举报
回复
引用 3 楼 xxjjs 的回复:
[quote=引用 1 楼 zy353003874 的回复:] 应该可以把这个当成一个树形结构来做 我觉得可以用二叉树来实现,就那你的例子来说 1的左子树为3,3的左子树为5,5的左边为9,右边为532,9的左边为4342,你只要找出树高度最大的子树就可以了
这个思路不错,不过应该用多叉树吧, “5的左边为9,右边为532” 以同一个数字开头的数据队可以多个,多叉树找数的最大高度即可 [/quote] 主要是这个思想,同时你也可以这样认为:将所有的数当成一个数列,找最长连续子数列
zy_think123 2014-06-21
  • 打赏
  • 举报
回复
根节点的选择你可以选择所有元素中出现次数最少的元素,当然这个只是一个建议而已,先从最小的找,找不到,从大的开始找
xxjjs 2014-06-20
  • 打赏
  • 举报
回复
引用 1 楼 zy353003874 的回复:
应该可以把这个当成一个树形结构来做 我觉得可以用二叉树来实现,就那你的例子来说 1的左子树为3,3的左子树为5,5的左边为9,右边为532,9的左边为4342,你只要找出树高度最大的子树就可以了
搞错了,根节点怎么确定?
xxjjs 2014-06-20
  • 打赏
  • 举报
回复
引用 1 楼 zy353003874 的回复:
应该可以把这个当成一个树形结构来做 我觉得可以用二叉树来实现,就那你的例子来说 1的左子树为3,3的左子树为5,5的左边为9,右边为532,9的左边为4342,你只要找出树高度最大的子树就可以了
这个思路不错,不过应该用多叉树吧, “5的左边为9,右边为532” 以同一个数字开头的数据队可以多个,多叉树找数的最大高度即可
super晓 2014-06-19
  • 打赏
  • 举报
回复
应该可以用mutimap做
zy_think123 2014-06-18
  • 打赏
  • 举报
回复
应该可以把这个当成一个树形结构来做 我觉得可以用二叉树来实现,就那你的例子来说 1的左子树为3,3的左子树为5,5的左边为9,右边为532,9的左边为4342,你只要找出树高度最大的子树就可以了

33,006

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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