题解 | #挤奶路径#

挤奶路径

https://www.nowcoder.com/practice/6ab56cedae0646e19fb64b8bdbad82a6?tpId=354&tqId=10595699&ru=/exam/oj/ta&qru=/ta/interview-202-top/question-ranking&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D354

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param cows int整型二维数组 
     * @return int整型
     */
    public int uniquePathsWithObstacles(int[][] cows) {
        int[][] dp = new int[cows.length][cows[0].length];
        // 初始化dp数组
        for (int i = 0; i < cows.length; i++) {
            if (cows[i][0] == 0) {
                dp[i][0] = 1;
            }else{
                break;
            }
        }
        for (int i = 0; i < cows[0].length; i++) {
            if (cows[0][i] == 0) {
                dp[0][i] = 1;
            } else{
                break;
            }
        }
        for (int i = 1; i < cows.length; i++) {
            for (int j = 1; j < cows[0].length; j++) {
                if(cows[i][j]==1){
                    dp[i][j] = 0;
                }else{
                    dp[i][j] = dp[i-1][j]+dp[i][j-1];
                }
            }
        }
        return dp[cows.length-1][cows[0].length-1];
    }
}

本题知识点分析:

1.动态规划

2.数组遍历

3.数学模拟

本题解题思路分析:

1.dp数组是什么?dp数组代表到底m,n位置有几种解法

2.dp数组推导公式, dp[i][j] = dp[i-1][j]+dp[i][j-1];常规公式,要么是向右走到的,要么是向下走到的。

3.dp数组初始化,初始化第一行和第一列就行,如果遇到0说明可以走,那么dp设置为1,有一种解法,如果遇到了1直接break,因为后面的格子必不可能走,因为不能返回走,比如向上或者向左是不可能的。注意break。

4.确定遍历顺序,从dp[1][1]开始,如果遇到了障碍物,那么设置为0,否则解法就是 dp[i][j] = dp[i-1][j]+dp[i][j-1];也就是求和。

本题使用编程语言: Java

如果您觉得本篇文章对您有帮助,可以点个赞支持一下,感谢~

高频面试算法题解 文章被收录于专栏

高频面试算法题解,每天一小步,人生一大步,跟着一起刷起来!

全部评论

相关推荐

Xistic:啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
投递阿里巴巴集团等公司10个岗位
点赞 评论 收藏
分享
2025年10月3日中午,在写完定时一年后发给自己的信之后,敲下键盘,写下这篇文字。我把标题的“所有人”加了引号,因为如我们所见,确实有的人顺风顺水,每天过的很开心,或是早早进入大厂,或是年纪轻轻就拿到了高薪offer,或是过着可能我努力十年也不一定实现的生活。但也许,不是每个人的痛苦都能被别人看到的,这个月我经常会哭,被骗6000块钱、手上钱不够导致拖欠房租、生活还要借朋友钱、国庆长假也没有钱去旅游,互联网公司不稳定担心试用期不过(毕竟上段实习就是被裁了,一有点风吹草动就害怕),但这样的我,不是所有人都知道的,居然是有些朋友的羡慕对象。回忆我的七年“长跑”别人都是多年幸福的恋爱长跑,我没有恋...
故事和酒66:让每一颗种子找到合适自己的生长方式,最终绽放出独一无二的花朵,这远比所有人都被迫长成同一棵“参天大树”的世界,更加美好和富有生机。这是社会和环境的问题,而不是我们的问题。然而就是在这样的环境中,楼主依然能突破自我,逆势成长,其中的艰辛可想而知。这一路的苦难终究会化作你成长的养料
你小时候最想从事什么职业
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务