给定两个数组。A = [1,3,4,2,5,6] B = [3,4,6,5,7] 我们必须删除 3,1,2,6 并插入 6,7 以使 A 等于 B .
我们可以从第一个数组的任何位置删除和插入任何元素,并使该数组与第二个数组相同。输出是需要插入第一个数组的最小元素数。
constraints:
1 <= First Array Size <= 10^5
1<= Second Array SIze <= 10^5
1 <= firstarray[i] <= 10^9
1 <= secondarray <= 10^9
第二个数组由不同的元素组成。
注意:它与编辑距离相同,但这里我们的约束是 10^5。在我的系统中分配两个 10^5 的长数组效果很好。但是对于 DP,10^5 和 10^5 的二维数组给出了内存不足错误。我了解最大数组大小是 int 的大小以及给定的内存。请解释为堆和堆栈分配了多少内存。如何一般地解决大输入的问题,比如在 java 中无法放入内存的问题?一些代码片段会有所帮助。