求解一个矩阵(只有一列)或者一维数组怎么找到相同的元素

哎呀,我已经习惯了。
去年,我正在家里做一个项目,必须在两个列表中找到相同的书名。
当时我有两个不同大小的列表,a和b,一个有大约3 00个项目,另一个有2 00多个项目。

起初我以为这是从列表 b 中逐一检索列表 a 中的每本书的老式方法。
想一想。
最坏的情况,你得把A中的最后一本书在B中一本一本地读完,那就是3 00或2 00次比较,或者6 0,000次比较!我的头太大了。

想了想,我意识到不不不。
我使用了一个称为集合的哈希表。
首先,将列表b中的所有书名放入一个集合中以创建集合等。
完成后,查看列表a中的书名并在集合中搜索它们。
别说了。
这很快!放进去需要一段时间,但后面检查只需要一毫秒。
大概只用了半天的时间,就制作了三百本书。
这比以前的方法要好得多。

后来,我尝试对齐和添加双指针。
排列字母 a,然后用两根手指。
用一根手指代表头部,一根手指代表尾巴。
读完这两本书后,我发现它们既有不同,又有相同之处。
写字时,手指向中间卷曲。
或者,将头指向后移动或将尾指向前移动。
这比纯粹的比较要好,但上次尝试时,感觉没有套装那么柔软。
可能是因为数据不多,也可能只有几十、几百组所以比较清楚。

使用集合来查找重复元素通常更容易。
如果两个列表都很大,则尤其如此。
双指针对齐也是可能的,但有点复杂。
去年我在家里翻阅书单时总结了这段经历。

如何将两个数组中相同 id 值的元素合并到一个新数组中?

结论:少用直接find效率更高。

a.reduce((p,v,i,a)=> ({...v,...{list:b.find(w=>w.cid===v.id)}}),[] );
项目测试:2 万条数据,速度缩短0.5 秒。
数值比较:过滤器嵌套执行的次数是n次方。
说白了:减少是一次就完成了,但过滤器却要运行两次。

不确定,但经验是这样的:数据量大时内存消耗较低。
称一下体重。

php怎么对两个数组的元素进行求和

结论:在PHP中,使用循环对数组求和具有优异的性能和直观的代码;使用 array_map 既简单又昂贵。

时间:不固定,取决于运行代码的具体环境。

位置:PHP代码执行环境。

具体数字:$n1 和$n2 代表数组的长度,$n是两者的最大值。

方法一:for循环,直观,适合大数组,性能好。

方法2 :array_map,简单且昂贵,适合小型数组或函数式编程。

选择:取决于团体规模和编程风格。