gpt4 book ai didi

javascript - 在二维数组中查找 argmax 的最快方法

转载 作者:行者123 更新时间:2023-12-04 08:38:47 24 4
gpt4 key购买 nike

JavaScript 对我来说远不是一种熟悉的语言。我有一个逻辑,我正在尝试优化速度。它包括找到二维数组(矩形)的 argmax、行和列索引。目前,我有一个天真的实现

function argMax2d(arr) {
var rowMax = 0, colMax = 0;
for( var rowIndex = 0; rowIndex < arr.length; rowIndex++){
for( var colIndex = 0; colIndex < arr[rowIndex].length; colIndex++){
if (arr[rowIndex][colIndex] > arr[rowMax][colMax]){
rowMax = rowIndex;
colMax = colIndex;
}
}
}
return [rowMax, colMax];
}
在 Python 中,由于没有使用数据的连续性,这将是一种非常缓慢的完成工作的方式。
PS: arr始终为矩形,每行的列数相同

最佳答案

根据问题中的评论,我能想到的唯一最小优化是缓存数组的长度以避免在每次迭代中访问它们,用于比较的 maxValue 也是如此。

    function argMax2d(arr) {
var rowMax = 0,
colMax = 0,
vLength = arr.length,
hLength = arr[0].length,
maxValue = -Infinity;

for (var rowIndex = 0; rowIndex < vLength; rowIndex++) {
for (var colIndex = 0; colIndex < hLength; colIndex++) {
if (arr[rowIndex][colIndex] > maxValue) {
maxValue = arr[rowIndex][colIndex];
rowMax = rowIndex;
colMax = colIndex;
}
}
}

return [rowMax, colMax];
}
JS performance comparison

关于javascript - 在二维数组中查找 argmax 的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64664221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com