【发布时间】:2021-04-08 06:21:27
【问题描述】:
假设我们有一个数组数组,其中包含一些数字:
let arr = [ [1,2,3] ,[5,6,9] ,[2,1,3],[3,2,4],[4,3,5], [6,9,5] ]
这里 arr[0] 和 arr[2] 具有 相同的关联值 (1,2,3),尽管位置是不一样。
相同的 arr[1] 和 arr[5] 具有 相同的关联值 (5,6,9),尽管位置是不一样
我想删除重复项,并希望得到结果:
final= [ [1,2,3] ,[5,6,9] ,[3,2,4],[4,3,5] ]
javascript 或 python 中的任何解决方案都会很棒,也欢迎其他语言,如 c++(我对此知之甚少),伪代码也很有帮助。
我想知道什么是最好的 BIG-O 算法。
【问题讨论】:
-
你试过什么?它的大 O 复杂度是多少?
-
这个问题仅限于二维
(a,b,c)->(b-a,c-a)? -
你可以为这个问题添加一些约束吗?我可以将它视为 n x m 即 n 个单个数组,并且每个 n 个数组包含最多 m 个元素。如果 n, m
-
Ie 将
equals定义为return (x_b-x_a == y_b-y_a) && (x_c-x_a == y_c-y_a)的哈希集可能会做得很好,具体取决于您想要的保证程度。