2657。查找两个数组的前缀公共数组
难度:中等
主题:数组、哈希表、位操作
给你两个0索引长度为n的整数排列A和B。
A 和 B 的 A 前缀公共数组 是一个数组 C,使得 C[i] 等于 A 和 B 中索引 i 处或之前出现的数字的计数。
返回A和B的前缀公共数组。
如果 n 个整数的序列包含从 1 到 n 的所有整数恰好一次,则该序列称为排列。
示例1:
示例2:
约束:
提示:
解决方案:
我们可以迭代两个数组 A 和 B,同时跟踪两个数组中当前索引处或之前出现的数字。由于两个数组都是同一组数字的排列,因此我们可以利用两个哈希集(或数组)来存储哪些数字出现在两个数组中的当前索引处或之前。对于每个索引,我们可以计算到目前为止两个数组中出现的公共数字。让我们用 PHP 实现这个解决方案:2657。查找两个数组的前缀公共数组
<?php /** * @param Integer[] $A * @param Integer[] $B * @return Integer[] */ function findThePrefixCommonArray($A, $B) { ... ... ... /** * go to ./solution.php */ } // Example usage: $A = [1, 3, 2, 4]; $B = [3, 1, 2, 4]; print_r(findThePrefixCommonArray($A, $B)); // Output: [0, 2, 3, 4] $A = [2, 3, 1]; $B = [3, 1, 2]; print_r(findThePrefixCommonArray($A, $B)); // Output: [0, 1, 3] ?>
输入:
$A = [1, 3, 2, 4]; $B = [3, 1, 2, 4];
输出:[0,2,3,4]
这应该在给定的约束下有效地工作。
联系链接
如果您发现本系列有帮助,请考虑在 GitHub 上给 存储库 一个星号或在您最喜欢的社交网络上分享该帖子?。您的支持对我来说意义重大!
如果您想要更多类似的有用内容,请随时关注我:
以上是查找两个数组的前缀公共数组的详细内容。更多信息请关注PHP中文网其他相关文章!