现在有一个问题:
给定两个数组A和B,它们的价值不是协调的,请使用最简单的方法将A和B合并到一个数组中。合并后获得的价值应为
这个问题是近年来更有可能出现在采访中的算法之一。我在58个城市和一个区块链的一家公司的采访过程中遇到了它,不仅限于JavaScript,而且还限于Python,Java,Ett的Ainterview问题。
有些学生可能会认为存在任何困难,不是只是检查阵列的合并和分类?
因此,写作文字:
写完美的营养
然后笑着面对面试官,让你回去等待通知
为什么?因为您没有仔细检查问题
该主题说:“请以最简单的方式”,最简单,而不是最小等于编写的代码。
因此,这里实际上有一个隐藏的前提,也就是说,在A和B合并后不能对其进行排序。这里最简单的解决方案应该是周期执行的最少次数。
因为在算法中,优化意味着避免无效的计算和多次计算。
例如,我们经常使用循环创建一系列元素并将其添加到页面中。
上面的三种方法
第一个比第二个更好,第二个比第三个更好。
与第三种循环添加方法相比,第二种方法可以频繁地减少DOM操作,而第一个可以减少中间变量的产生,并避免一些额外的操作。
这是因为没有优化的“+'运算符在早期浏览器中程序。
keke,运行主题
回到我们的话题。
也就是说,a和b均为序列阵列。必须使用上述A和B本身的隆升序列的最简单方法来减少在分类阶段将进行的比较。
因此,我们只需要比较A和B中的元素,并且需要相对较大的元素吗?B中的元素是否需要更小?
不必要。
因此,有一个想法:
第一个实施:
尽管标题中给出的A和B的长度相等,但我们假设A和B的长度不相等。
现在,主题已经完成,但是仔细研究上述想法,因为我们不知道哪个数组长度A和B更长,我们将再编写一个周期(实际上只执行了两个周期)。写作?
实际上,我们只需要判断该值是否值得在数组中阅读时是否存在
优化:
在这一点上,这个问题已经完成。
错误引起的思考:
偶尔进行测试后,我发现上面的代码实际上有一个不起眼的错误。此错误将导致我们的代码损失很多。
例如:
这是因为我们在代码中判断真相,而当值为0时,无法确定判断,因此出现错误。
在这种情况下,我们直接使用另一种想法来替换以前的解决问题的想法,
首先,我们的循环条件需要修改,并且仅根据一个阵列进行循环,以确保周期中的每次都存在。这是什么意思?
如果我有以下代码:
这里的判断条件可以保证它必须存在。
然后让我们谈谈总体想法:
作者:阳光同学