在二维数组中查找邻居

2023-11-30

有没有一种简单的方法可以找到二维数组中元素的邻居(即元素周围的八个元素)?不仅仅是以不同的组合对索引进行减法和加法,如下所示:

array[i-1][i]
array[i-1][i-1]
array[i][i-1]
array[i+1][i]

... 等等。


(伪代码)

row_limit = count(array);
if(row_limit > 0){
  column_limit = count(array[0]);
  for(x = max(0, i-1); x <= min(i+1, row_limit); x++){
    for(y = max(0, j-1); y <= min(j+1, column_limit); y++){
      if(x != i || y != j){
        print array[x][y];
      }
    }
  }
}

当然,这几乎需要与原始硬编码解决方案一样多的行,但是使用此解决方案,您可以尽可能多地扩展“邻域”(2-3 个或更多单元格之外)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在二维数组中查找邻居 的相关文章

  • 将一个列表(n 元组或列表)与另一个列表(也可以是数组)缩放的惯用 F# 方法是什么?

    Given let weights 0 5 0 4 0 3 let X 2 3 4 7 3 2 5 3 6 我想要的是 wX 0 5 2 3 4 0 4 7 3 2 0 3 5 3 6 我想知道一种使用列表和数组来执行此操作的优雅方法 欢迎
  • PHP 数组 - 如何将数组转换为对象? [复制]

    这个问题在这里已经有答案了 我对 PHP 还很陌生 所以请耐心等待 所以我收到这个错误 注意 尝试在此行获取非对象的属性 echo tr td row gt last name td td row gt first name td td r
  • 为什么 B = numpy.dot(A,x) 执行 B[i,:,:] = numpy.dot(A[i,:,:],x) ) 的循环速度慢得多?

    我得到了一些我无法解释的效率测试结果 我想组装一个矩阵 B 其第 i 个条目 B i A i dot x 其中每个 A i 是一个 2D 矩阵 x 也是如此 我可以通过三种方式做到这一点 为了测试我随机制作的性能 numpy random
  • Swift - 如何复制包含引用类型的数组

    我正在尝试复制数组及其值 为什么两个数组都引用同一个变量 您可以在 Playground 中尝试此操作 var view UIView view tag 1 var a UIView var b UIView a append view b
  • 将数组传递给函数 - 指针与引用(C++ 与 C)

    我有一个关于将数组传递给函数的最佳实践的广泛问题 因此 过去当我用 C 语言编程时 我想要一个函数的输入是一个数组 我会声明该函数的输入参数是一个指针 这效果相对较好 然而 我已经开始更多地使用 C 进行编程 并试图确定将数组传递到函数中的
  • 使用 Arrays.copyOf 复制不同类型的数组时出现问题

    我正在尝试创建一个方法 该方法几乎将任何内容作为参数 并返回带有某些分隔符的值的串联字符串表示形式 public static String getConcatenated char delim Object names String st
  • 将文件内容存储到数组中

    我的刽子手程序有问题 我真的认为我需要做的事情超出了我对java的理解 这是我的代码 import java io BufferedReader import java io FileReader import java io FileNo
  • 通过链接导航多个对象而不重复

    我正在尝试浏览一堆带有其他对象链接的对象 我想从 id 1 开始并浏览每个对象 有些对象会循环回到之前的对象 所以我想确保每个对象只查看一次 否则我会陷入无限循环 我还希望能够通过链接导航来判断哪些对象无法访问 我认为导航顺序并不重要 这是
  • php将多维数组内爆为制表符分隔行

    我有一个多维数组 BlockData 其中有 13 个维度和 n 个数组元素 我需要将此数组内爆回单个长字符串 其中元素由 n 换行和尺寸由 t tabs 我尝试过使用array map 功能没有成功 需要帮助来完成此任务 请帮忙 这可以使
  • 在汇编中初始化字符串数组

    我想创建一个数据数组 在初始化数据部分保存 5 个字符串 每个字符串正好有 4 个字符 每个字符串都有一些初始数据 例如第一个字符串的 abcd 第二个字符串的 efgh 等等 无效的 0任何字符串都不需要字符 如何用汇编语言初始化字符串数
  • 领域驱动设计与模型驱动架构

    我很好奇 领域驱动设计和模型驱动架构有什么区别 我的印象是他们有某些相似之处 你能启发我吗 Thanks 不要不同意上面的大部分内容 尽管它可能值得稍微扩展一下 DDD 中最重要的一个概念是关注问题域 将对技术的痴迷放在一边 主要集中于对您
  • Javascript:“new Array(4)”与 Array.apply(null, {length: 4}) 有何不同?

    我想生成一个给定长度的空数组并用一些数字填充它 生成具有四个连续数字元素的数组的一种方法是 var x Array apply null length 4 map function item index return index 但当我看到
  • 在Java中清空数组/处理

    除了循环遍历数组中的每个元素并将每个元素设置为 null 之外 Java 处理中是否有一个本机函数可以简单地清空数组 或销毁它 以便能够将其重新声明为新数组 There s Arrays fill myArray null 并不是说它执行的
  • 如何在 JavaScript 中对关联数组进行排序?

    我需要为我的一个项目通过 JS 对关联数组进行排序 我发现这个函数在 Firefox 中运行得很好 但不幸的是它在 IE8 OPERA CHROME 中不起作用 无法找到使其在其他浏览器中运行的方法 或者找到另一个适合该目的的函数 我真的很
  • 如何构建 if 语句并与各种值进行比较?

    我该怎么写这个if以更好的方式声明条件 if data in 8 downto 1 x 70 or data in 8 downto 1 x 69 or data in 8 downto 1 x 72 or data in 8 downto
  • 如何从函数返回矩阵(二维数组)? (C)

    我创建了一个生成宾果板的函数 我想返回宾果板 正如我没想到的那样 它不起作用 这是函数 int generateBoard int board N M i j fillNum Boolean exists True initilize se
  • 从 numpy 数组中删除连续的 RGB 值

    我最初根据灰度图像的初始数组创建了一个子数组 从 numpy 数组中删除连续数字 https stackoverflow com questions 50743769 deleting consecutive numbers from a
  • 交换关联数组中的两个项目

    Example arr array apple gt sweet grapefruit gt bitter pear gt tasty banana gt yellow 我想调换一下柚子和梨的位置 这样数组就变成了 arr array ap
  • 如何实现n个元素的查找和插入操作的动态二分查找

    这个想法是使用多个数组 每个长度为 2 k 根据 n 的二进制表示来存储 n 个元素 每个数组都是排序的 不同的数组没有以任何方式排序 在上述数据结构中 SEARCH是通过对每个数组进行一系列二分查找来进行的 INSERT 是通过一系列相同
  • Repa 数组上的并行 mapM

    在我最近的work https github com bgamari mixture model with Gibbs sampling 我一直在充分利用RVar http hackage haskell org packages arch

随机推荐