如何将包含相同元素的多组不同数据合并成一个数据?


归根结底还是不熟悉GH的逻辑架构
不知道他本质是什么,能做什么,不能做什么,不方便做什么

在这个情况下冷不丁抛出一个已经很靠近末端的子问题
分分钟这个问题就超出了GH自身能解决的范围,又或者能解决但是办法很绕很难说
所以我相信一个熟悉GH架构的人会在一开始看到母问题就选择算法A2 A3 A4
后面就不会出问题了。
当他认为只有算法A1能解决这个母问题时,他会详细评估后续算法B1, C1,D1的难度
来判断自己将来会不会走到死胡同,一直到不得不求助的程度。

你的问题我暂时没想好什么妙招。不过我总感觉有哪里不对。就先发出来了

2 个赞

如果使用代码:
首先需要使用邻接表或者邻接矩阵储存这个图结构
其次选用深度优先搜索(广度优先也可以)

如果不使用代码:
很难

1 个赞



强行借用了mesh join内包含的深度优先算法。

1 个赞

这个算法确实挺巧妙的,,花了几天才理解消化。 :joy:感谢鹿神

我觉得你还是看一下我的二楼回帖吧。
就算是能折腾,经常碰到这种问题也折腾不起啊。
年纪大了 :scream_cat:

要的,gh做这种循环的是有点局限性,太烧脑~以后学学代码配合用

大部分问题都不需要代码,也不需要循环结构。
效率最高的做法还是GH做到滚瓜烂熟,然后将碰到的问题纳入到GH的体系中。

什么样的工具适合做什么事情。
循环是GH的弱项,但是一定程度的基础技能可以将很多 看似需要循环的问题化解为线性问题。

首先给出一个解法(用到了k-means):


核心思路:
根据每个数字在数组中存在的多寡,把每个数组转成唯一编码,再用聚类分析,看哪些编码比较相近可以归到一起,就可以解出分组序号。再用这些序号重新去取原来的数组,就可以把相近的排列在一起。
这里有个巧合是分组序号恰好为数组内容,所以后续加入了一些奇怪的数组来验证,完善了后续脚本,好像还行。


当然,这个脚本的鲁棒性在某些方面可能比较一般,比如无法区分图片
其实就还蛮尴尬的。
*另一个尴尬的事是我发现# of clusters似乎不该指定分组数量;分组数量等于最长的组内长度似乎完全是个巧合…所以具体分几组最好手拉一下看看,有空再改吧

2 个赞

优秀,给你点个赞。

代码的时间复杂度其实并未达到深度优先搜索,实现也不算太复杂。算是一个迷你版本的搜索。

正如我之前回复楼主的,碰到这样的问题应该从之前就考虑修改思路。

@NARUTO 我实在是折腾不来py还是C#的GH数据结构,只能在代码前后做处理。抛砖引玉一下请月神来帮助完善一下。