ZVVQ代理分享网

LeetCode Day动态编程第 2 部分(动态编程代码有哪

作者:zvvq博客网
导读62.独特的路径 在 m x n 的网格上有一个机器人。机器人最初位于左上角(即 grid[0][0])。机器人尝试移动到右下角(即 grid[m - 1][n - 1])。机器人在任何时间点只能向下或向右移动。 给定

62.独特的路径

在 m x n 的网格上有一个机器人。机器人最初位于左上角(即 grid[0][0])。机器人尝试移动到右下角(即 grid[m - 1][n - 1])。机器人在任何时间点只能向下或向右移动。

给定两个整数 m 和 n,返回机器人到达右下角可能采取的唯一路径的数量。

生成测试用例,以便答案将小于或等于 2 109。

示例1:

输入:m = 3,n = 7

输出:28

示例2:

输入:m = 3,n = 2

输出:3

说明:从左上角开始,到达右下角一共有3种方式: 右 -> 下 -> 下 下 -> 下 -> 右 向下 -> 向右 -> 向下

限制:

1 原始页面

我们可以使用这个手写数组模拟来探索模式(顺便原谅我糟糕的笔迹)。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

公共 int uniquePaths(int m, int n) {

if(n

<p>dp[0][1] = 1;对于这段代码,实际上我们使用 dp[1][0] = 1 还是 dp[0][1] = 1 并不重要,因为我们想要将索引匹配到 m 和 n,我们再扩展一行并当我们初始化数组时看到的列: int dp[][] = new int[m+1][n+1];</p>

<pre class="brush:php;toolbar:false"> public int uniquePathsWithObstacles(int[][]barrierGrid) {

int row = 障碍网格.length;

int col = 障碍网格[0].length;

int[][] dp = new int[行][列];

布尔值 isBlocked = false;

for(int i=0; i

<p>没有什么特别难实现的,我们只需要考虑被遮挡的东西就可以了,但是很容易想到,这意味着当有被遮挡的东西时,无法通过被遮挡的东西左边或下方的格子这个方向。 (A格子的左边格子是被封锁的,我们无法从A的左边移动到A,只能找到向上的路线,这个逻辑也适用于向上)</p>

<h2>

343. 整数中断

</h2>

<p>给定一个整数 n,将其分解为 k 个正整数之和,其中 k &gt;= 2,并最大化这些整数的乘积。</p>

<p>返回您可以获得的最大产品。</p>

<p>示例1:</p>

<p>输入:n = 2<br>

输出:1<br>

解释:2 = 1 + 1, 1 × 1 = 1.<br>

示例2:</p>

<p>输入:n = 10<br>

输出:36<br>

解释:10 = 3 + 3 + 4, 3 × 3 × 4 = 36.</p>

<p>限制:</p>

<p>2

原始页面<br></p>

<pre class="brush:php;toolbar:false"> 公共 int integerBreak(int n) {

如果(n

以上就是LeetCode Day动态编程第 2 部分的详细内容,更多请关注其它相关文章!

    展开全文