Java 中从左上角到右下角的矩阵可能路径2024年9月10日 | 阅读 6 分钟 在本节中,我们将学习如何在Java中找到从矩阵左上角到右下角的可能路径。这是面试中一个非常重要的问题。从左上角到右下角的移动约束是,从任何单元格出发,只能向右(→)或向下(↓)移动。为了更好地理解,我们来看几个例子。 注意:建议读者先学习数组和递归,然后再阅读本主题。示例示例 1在上图的 3 * 3 矩阵中,需要从标记为 1 的单元格移动到标记为 5 的单元格。从单元格 1,可以移动到单元格 4 或单元格 7。同样,从单元格 4,可以移动到单元格 8 或单元格 2,从单元格 7,可以移动到单元格 6 或单元格 8。如此继续,将得到以下结果。 因此,我们看到有 6 种方法可以从标记为 1 的单元格到达标记为 5 的单元格。 示例 2在上图的 2 * 4 矩阵中,将得到以下结果。 因此,我们看到有 4 种方法可以从标记为 2 的单元格到达标记为 9 的单元格。 使用递归简单的递归足以解决这个问题。首先,我们显示所有向下移动的路径,然后显示所有向右移动的路径。我们将对路径中遇到的每个单元格进行递归处理。 实施以下是打印矩阵从左上角到右下角可能路径的实现。 文件名: TopLeftBottomRightPath.java 输出 For the matrix: 1 4 2 7 8 0 6 3 5 The possible paths from the top left to the bottom right is: [1, 7, 6, 3, 5] [1, 7, 8, 3, 5] [1, 7, 8, 0, 5] [1, 4, 8, 3, 5] [1, 4, 8, 0, 5] [1, 4, 2, 0, 5] 使用迭代我们也可以使用迭代来解决这个问题。在这种方法中,我们将使用广度优先搜索 (BFS)。将使用一个队列,其中包含单元格坐标和到特定单元格的路径。从左上角单元格开始,我们将单元格的坐标和值(单元格的值存储在向量中)推入队列。我们将继续探索向下和向右的单元格,直到队列不为空,并且还将继续将未发现的单元格推入队列。当我们到达矩阵的右下角单元格时,包含所探索单元格值的向量就是我们的答案。 输出 For the following matrix: [1, 4, 2] [7, 8, 0] [6, 3, 5] The possible paths from the top left to the bottom right is: 1 4 2 0 5 1 4 8 0 5 1 4 8 3 5 1 7 8 0 5 1 7 8 3 5 1 7 6 3 5 下一主题Java中的回文分割问题 |
在本节中,我们将了解什么是分区数,并创建 Java 程序来检查给定数字是否为分区数。分区数程序经常在 Java 编码面试和学术界中出现。分区数 在组合数学和数论中,...
阅读 4 分钟
在 Java 中,有多种方法可以检索日期范围。最常见的选择是使用 Java 标准库中的内置类,例如 LocalDate 类,或者第三方库,例如 Joda-Time 或 Java 8 中引入的较新的 Java Time API...
阅读 4 分钟
在 Java 中,Scanner 是一个类,它提供了用于输入不同基本类型的各种方法。它定义在 java.util 包中。在本节中,我们将学习如何使用 Scanner 类在 Java 中获取多个字符串输入。在使用 Scanner 之前,我们必须导入该包……
阅读 3 分钟
给定一个数组,我们的任务是找出可以从每个潜在的连续子数组中创建多少对,这些子数组包含不同的整数。数组中的正数范围从 0 到 n-1,其中 n 是数组的大小。示例 1:输入:int a[] =...
阅读 4 分钟
Java 作为一种面向对象的编程语言,为处理对象及其交互提供了强大的支持。处理对象的一个重要方面是能够将它们转换为或强制转换为不同的类型或类。Java 提供了类型转换对象的机制,允许开发人员更改...
阅读 6 分钟
java.time.format.DecimalStyle 类是 getDecimalSeparator() 方法。使用 DecimalStyle 类获取用于表示此 DecimalStyle 的 Locale 的小数分隔符的字符。该过程返回该区域设置的十进制分隔符的字符。语法:public char getDecimalSeparator() 参数:无参数...
阅读 2 分钟
索引映射,也称为平凡哈希,是一种将数组元素映射到新数组中索引的技术。这可用于有效地执行查找重复项或计算数组中元素出现次数等操作。一种常见的实现……
阅读 10 分钟
使用最少数量的矩形“覆盖”曼哈顿天际线 使用最少数量的矩形“覆盖”曼哈顿天际线 “石墙”问题属于传统的计算问题,其目标是估算建造不同高度的墙所需的方块数量。墙由数组描述...
5 分钟阅读
在 Java 中有多种方法可以获取昨天日期的毫秒值。方法 1:使用 java.util.Calendar java.util.Date 类和 java.util.Calendar 类是 Java 遗留日期和时间 API 的一部分。尽管这些类在 Java 中仍然可用,但最近的 java.time 包已大部分...
5 分钟阅读
在 Java 中,Collectors.ToCollection() 方法是 java.util.Stream.Collectors 类提供的一个非常有益的应用程序,它允许您将流中的元素收集到您指定的特定类型的集合中。该方法在选择类型方面提供了灵活性...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India