2657. 找到两个数组的前缀公共数组

2657. 找到两个数组的前缀公共数组

💡 原文英文,约800词,阅读约需3分钟。
📝

内容提要

给定两个长度为n的整数排列A和B,求它们的前缀公共数组C,其中C[i]表示在索引i之前A和B中出现的共同数字的数量。通过维护频率数组,遍历A和B,更新共同计数。适用于n≤50的情况,时间复杂度为O(n²)。

🎯

关键要点

  • 给定两个长度为n的整数排列A和B。
  • 前缀公共数组C的定义:C[i]表示在索引i之前A和B中出现的共同数字的数量。
  • 示例1:输入A = [1,3,2,4], B = [3,1,2,4],输出C = [0,2,3,4]。
  • 示例2:输入A = [2,3,1], B = [3,1,2],输出C = [0,1,3]。
  • 约束条件:1 <= A.length == B.length == n <= 50,且A和B都是n个整数的排列。
  • 建议使用频率数组来存储每个数字在索引i之前的出现次数。
  • 解决方案:遍历A和B,同时跟踪在当前索引之前出现的数字。
  • 使用两个数组来跟踪A和B中数字的出现情况。
  • 时间复杂度为O(n²),适用于n≤50的情况。
➡️

继续阅读