Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >查找一个二维数组在另一个二维数组中的所有匹配项

查找一个二维数组在另一个二维数组中的所有匹配项
EN

Stack Overflow用户
提问于 2013-05-15 23:00:37
回答 1查看 357关注 0票数 0

在JavaScript中,我试图找到这个2D整数数组的所有匹配坐标:

在这个2D整数数组中,计算重叠的子数组:

每个图像表示一个2D JavaScript整数数组,黑色像素对应于1,黄色像素对应于0,但我以这种方式描述了这些数组,以便它们更容易可视化。

那么如何找到数组的所有匹配项呢

数组内部

下面是我正在尝试实现的函数:

代码语言:javascript
运行
AI代码解释
复制
findAllMatchesOfOne2DArrayInsideAnother2DArray(containedArray, containingArray){
    //find all matching coordinates of containedArray inside containingArray, and return a 2D array of coordinates
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-15 23:54:26

Here is a way来获取任何给定的二维数组在另一个二维数组中的所有匹配项。假设所有的子数组都具有相同的维数(与[[1,0,0],[1,0]]完全不同)。

代码语言:javascript
运行
AI代码解释
复制
var x = [[0,1,0,0,0,0,0],
        [1,1,1,0,0,1,0],
        [0,1,0,0,1,1,1],
        [0,0,0,0,0,1,0],
        [0,0,1,0,0,0,0],
        [0,1,1,1,0,0,0],
        [0,0,1,0,0,0,0]];

var y = [[0,1,0],[1,1,1],[0,1,0]];

var res = [];
for (var i = 0; i < x.length - y.length + 1; i++) {
    for (var k = 0; k < x[0].length - y[0].length + 1; k++) {
        var count = 0;
        for (var l = 0; l < y.length; l++) {
             for (var m = 0; m < y[l].length; m++) {
                count += Math.abs(y[l][m] - x[i + l][k + m]);
            }       
        }
        if (count === 0) {
            res.push([i, k]);
        }

    }
}

数组res将包含每个匹配的左上角的“坐标”。我相信你会找到性能更好的算法,但这个算法似乎是有效的:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16576381

复制
相关文章
[剑指offer] 二维数组中的查找
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数
尾尾部落
2018/09/04
2.4K0
[剑指offer] 二维数组中的查找
二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
用户3003813
2018/09/06
2.2K0
二维数组中的查找
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 热度指数:1946753
后端码匠
2021/08/18
1.9K0
二维数组中的查找
给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。
崩天的勾玉
2021/12/20
1.7K0
二维数组中的查找
给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。
MickyInvQ
2021/10/26
1.9K0
二维数组中的查找代码
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 代码 public class Solution { public boolean Find(int target, int [][] array) { if(array == null || array.length == 0) return false;
desperate633
2018/08/22
1.3K0
二维数组的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。        当我们需要解决一个复杂的问题时,一个很有效的办法就是从一个具体的问题入手,通过分析简单具体的例子,试图寻找普遍的规律。针对这个问题,我们不妨也从一个具体的例子入手。下面我们以在题目中给出的数组中查找数字7为例来一步步分析查找的过程。        我们发现如下规律:首先选取数组中右上角的数字。如果该数字等于要查找的数
猿人谷
2018/01/17
1.4K0
二维数组中的查找_01
题目描述 在一个二维数组中(每个一维数组的长度相同), 每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路 观察右上交可以做起点,左小下大 public boolean Find(int target, int [][] array) { //以右上角为起点检索 int height=array.length; int width=array[0].len
名字是乱打的
2021/12/23
1.2K0
算法-二维数组中的查找
该文介绍了如何在一个由数字组成的二维数组中查找指定元素,并使用动态规划方法进行优化。
chaibubble
2018/01/02
1.6K0
算法-二维数组中的查找
java二维数组查找
问题:在一个二维数组中,每行每列都递增排序,在这个数组中查找一个数字,如果存在返回true,否则返回flase。
全栈程序员站长
2022/09/02
5950
java二维数组查找
[剑指]1二维数组的查找
这里用两种方法解决,第一种是前面说解题思路,第二种则是普遍的解题思路,两者的时间复杂度不同。
程序员的时光001
2020/07/13
6770
一维数组二分法查找_excel二维数组查找匹配
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
全栈程序员站长
2022/09/22
3180
LeetCode120|二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
码农王同学
2020/10/27
7280
Sword To Offer 001 - 二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
Reck Zhang
2021/08/11
5440
剑指offer:二维数组中的查找
一种简单的方法就是整个数组都遍历,当然,数组从左到右,从上到下都是有序的,如果你遍历整个数组的话,那就浪费了数组的局部有序性了。
帅地
2019/03/11
6110
【剑指offer】二维数组中的查找
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
韩旭051
2019/11/08
6040
LeetCode题解——二维数组查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
码上积木
2021/01/25
1.6K0
003-二维数组的查找
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
单车变摩托
2019/01/10
8250
【剑指offer题解】二维数组中的查找
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
Rude3Knife的公众号
2019/12/02
4990
剑指offer 03:二维数组中的查找
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
程序员小浩
2020/08/10
6670

相似问题

在二维数组中查找数组

30

在php二维数组中查找重复项

52

在Google工作表中的二维数组中查找多个匹配项。

24

在二维numpy数组中查找匹配的行

30

查找数组是否在二维数组中

010
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档