冲刺大厂每日算法&面试题,动态规划21天——第十五天

·  阅读 171
冲刺大厂每日算法&面试题,动态规划21天——第十五天

「这是我参与11月更文挑战的第13天,活动详情查看:2021最后一次更文挑战

导读

在这里插入图片描述

肥友们为了更好的去帮助新同学适应算法和面试题,最近我们开始进行专项突击一步一步来。我们先来搞一下让大家最头疼的一类算法题,动态规划我们将进行为时21天的养成计划。还在等什么快来一起肥学进行动态规划21天挑战吧!!

21天动态规划入门

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。

问总共有多少条不同的路径?

在这里插入图片描述

示例 1:


输入:m = 3, n = 7
输出:28
复制代码
示例 2:

输入:m = 3, n = 2
输出:3
解释:
从左上角开始,总共有 3 条路径可以到达右下角。
1. 向右 -> 向下 -> 向下
2. 向下 -> 向下 -> 向右
3. 向下 -> 向右 -> 向下
复制代码
示例 3:

输入:m = 7, n = 3
输出:28
复制代码
示例 4:

输入:m = 3, n = 3
输出:6
复制代码
class Solution {
    public int uniquePaths(int m, int n) {
        long ans=1;
        for(int i=n,j=1;j<m;i++,j++){
            ans=ans*i/j;
        }
        return (int)ans;

    }
}
复制代码

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。

现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?

网格中的障碍物和空位置分别用 1 和 0 来表示。

在这里插入图片描述 示例一: 在这里插入图片描述

示例 1:


输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]
输出:2
解释:
3x3 网格的正中间有一个障碍物。
从左上角到右下角一共有 2 条不同的路径:
1. 向右 -> 向右 -> 向下 -> 向下
2. 向下 -> 向下 -> 向右 -> 向右
复制代码

在这里插入图片描述

示例 2:

输入:obstacleGrid = [[0,1],[0,0]]
输出:1
 
复制代码
class Solution {
    public int uniquePathsWithObstacles(int[][] obstacleGrid) {
        int n = obstacleGrid.length, m = obstacleGrid[0].length;
        int[] f = new int[m];

        f[0] = obstacleGrid[0][0] == 0 ? 1 : 0;
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < m; ++j) {
                if (obstacleGrid[i][j] == 1) {
                    f[j] = 0;
                    continue;
                }
                if (j - 1 >= 0 && obstacleGrid[i][j - 1] == 0) {
                    f[j] += f[j - 1];
                }
            }
        }
        
        return f[m - 1];
    }
}

复制代码

面试题

请谈⼀谈,hashCode() 和equals() ⽅法的重要性体现在什么地⽅? 参考回答: Java中的HashMap使⽤hashCode()和equals()⽅法来确定键值对的索引,当根据键获取值的 时候也会⽤到这两个⽅法。如果没有正确的实现这两个⽅法,两个不同的键可能会有相同的 hash值,因此,可能会被集合认为是相等的。⽽且,这两个⽅法也⽤来发现重复元素。所以 这两个⽅法的实现对HashMap的精确性和正确性是⾄关重要的。  请问,Object作为HashMap的key的话,对Object有什么要求吗? 参考回答: 要求Object中hashcode不能变。  请问 hashset 存的数是有序的吗? 参考回答: Hashset是⽆序的。

分类:
后端
标签:
分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改