gpt4 book ai didi

algorithm - 确定二维数组中重复值是否存在的最有效方法,像表格一样排列(有一些起始想法)

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:41:57 27 4
gpt4 key购买 nike

<分区>

我正在切换这个问题的标签,因为我不认为这是一个特定于 C# .NET 的问题,更像是一个数学/算法问题。假设我有一个二维整数数组,如下所示:

 0 | 1 | 2
---+---+---
0 | 1 | 0
---+---+---
1 | 0 | 0

如果可以更快地解决问题,则可以将这些存储在不同的数据结构中。 问题是如何检测(并找到其位置)相邻存储的相等整数值(允许对角线)(而不是考虑“环绕”邻接,例如角 block 应该只需要与其他 3 个值进行比较...除非有更好的存储数据的解决方案)。

我的第一个(而且我确信是幼稚的)方法是一个二维数组(实现为锯齿状数组或像 this 一样索引),我在其中存储整数值。除了值是否相等之外,我不需要任何排序属性(即不需要 >< 等)。然后我可以做一个 N^8 (not sure if this is the correct time analysis for this situation but it was my best try)遍历数组中的所有 N 个位置,并且每次迭代检查 8 个最大值(如果不在边缘)。但是,我认为可能有更好的方法来做到这一点。特别是因为这种方法非常耗时。

我的一个想法是修改数据结构,使每个项目都有一个标志(包含在数组的每个结构中 [因此不仅仅是一个整数数组]),表明它是否与任何相邻值相同。这会减慢我的插入和构建过程,但可能 (??)加快在表中查找对的过程。感谢您的帮助。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com