如何在不使用这么多嵌套循环的情况下在矩阵中找到数字对?

问题描述 投票:0回答:1

我必须编写一个算法,在3D数组(嵌套列表)中找到两个数字:

  1. 它在给定范围内(min <num1,num2,<max)
  2. 不要重叠
  3. 尽可能接近(abs(num1 - num1)最小)
  4. 如果存在更多满足1),2)和3)的数字对,则选择总和最大的数字对

原始数据是由基本正方形组成的N×N字段,每个基本正方形在其中具有单个随机数。问题是找到两个子字段,其总和满足写入的4个条件。我计算所有可能的和并将它们存储在3D数组sum [i] [j] [k]中,其坐标为起点(i,j)及其大小(k)。我需要跟踪索引以确保字段不重叠。现在我正在使用6个嵌套for循环(每个索引一个,每个数字3个索引)和许多if语句(检查总和在范围内并且字段不重叠),然后简单地迭代每个可能的组合真的很慢

有没有更快的方法(可能没有这么多循环)?只允许使用标准库

python algorithm performance
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.