【每日刷题】Day113

news2024/12/23 5:19:09

【每日刷题】Day113

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

1. 91. 解码方法 - 力扣(LeetCode)

2. LCR 098. 不同路径 - 力扣(LeetCode)

3. 63. 不同路径 II - 力扣(LeetCode)

1. 91. 解码方法 - 力扣(LeetCode)

//思路:动态规划。

class Solution {

public:

    int numDecodings(string s)

    {

//如果开头为 '0' ,则没有解码方法。

        if(s[0]=='0') return 0;

        int size = s.size();

        vector<int> dp(size);

//初始化前两个位置的解码数

        dp[0] = 1;

        if(size==1) return dp[0];

        if(s[1]!='0') dp[1]++;

//判断能否与前一个数共同解码

        int num = (s[0]-'0')*10+s[1]-'0';

        if(num>=10&&num<=26) dp[1]++;

        for(int i = 2;i<size;i++)

        {

            int num = (s[i-1]-'0')*10+s[i]-'0';

//如果当前数字自身能够解码,则其解码数为前一个位置的解码数

            if(s[i]!='0') dp[i]+=dp[i-1];

//如果当前数字能够与前一个位置解码,则其解码数为 i-2 位置的解码数

            if(num>=10&&num<=26) dp[i]+=dp[i-2];

        }

        return dp[size-1];

    }

};

2. LCR 098. 不同路径 - 力扣(LeetCode)

//思路:动态规划。

class Solution {

public:

    int uniquePaths(int m, int n)

    {

//多开一行和一列

        vector<vector<int>> dp(m+1,vector<int>(n+1));

//[0][1]用于后续循环中初始化起点位置

        dp[0][1] = 1;

        for(int i = 0;i<m;i++)

        {

            for(int j = 0;j<n;j++) dp[i+1][j+1] = dp[i][j+1]+dp[i+1][j];//套用方程

        }

        return dp[m][n];

    }

};

3. 63. 不同路径 II - 力扣(LeetCode)

//思路:动态规划。

//与上面那题的思路基本相同,区别在于多了障碍判断。有障碍的位置在dp中的值为0,代表走法数为0

class Solution {

public:

    int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid)

    {

        int rows = obstacleGrid.size(),cols = obstacleGrid[0].size();

        vector<vector<long long>> dp(rows+1,vector<long long>(cols+1));

        dp[0][1] = 1;

        for(int i = 0;i<rows;i++)

        {

            for(int j = 0;j<cols;j++)

            {

//判断当前是否为障碍

                if(!obstacleGrid[i][j])

                    dp[i+1][j+1] = dp[i+1][j]+dp[i][j+1];

            }

        }

        return dp[rows][cols];

    }

};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2115352.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服务器流量监控工具vnStat的简单使用以及关于Linux的软中断信号(signal)的一点内容

一、服务器流量监控工具vnStat的简单使用 vnStat是为Linux和BSD设计的基于控制台的网络流量监控工具&#xff0c;通过它可以非常方便在命令行查看流量统计情况。它可以保留某个或多个所选择的网络接口的网络流量日志。为了生成日志&#xff0c;vnStat使用内核提供的信息。换句话…

2024年必看的4款录屏新星,谁才是你的菜?

嘿&#xff0c;小伙伴们&#xff0c;你们的职场好帮手来啦。今天我们要说说办公室里经常被忽略但实际上超有用的东西——录屏软件。现在大家都用数字化工具办公了&#xff0c;不管是做教学视频、记录会议&#xff0c;还是直播玩游戏&#xff0c;录屏软件都是必不可少的。可是市…

FRP内网穿透使用常见问题

本文解答一些关于FRP内网穿透的常见问题 FRP简介 FRP是一款开源的高性能反向代理应用&#xff0c;支持多种协议的内网穿透。它允许用户在外网环境中访问位于内网中的服务器和服务&#xff0c;如Web服务器、MySQL数据库、以及其他基于TCP/UDP的应用程序。FRP以其灵活的配置选项…

C++实现俄罗斯方块(Windows控制台版)

C实现俄罗斯方块&#xff08;Windows控制台版&#xff09; 在油管上看到一个使用C控制台编写的俄罗斯方块小游戏&#xff0c;源代码200多行&#xff0c;B站上也有相关的讲解视频&#xff0c;非常不错&#xff0c;值得学习。 B站讲解视频地址为&#xff1a;【百万好评】国外技术…

Unet改进27:添加DGCST|Vision Transformer与DGSM模块集成在一起的创新结构

本文内容:在不同位置添加DGCST 目录 论文简介 1.步骤一 2.步骤二 3.步骤三 4.步骤四 论文简介 随着移动计算技术的快速发展,在移动设备上部署高效的目标检测算法成为计算机视觉的一个关键研究领域。本研究的重点是优化YOLOv7算法,以提高其在移动平台上的运行效率和速度…

【Linux】传输层协议——UDP

零、传输层的作用是负责数据能够从发送端传输到接收端 一、再来认识一下端口号 端口号&#xff08;Port&#xff09;标识了一个主机进行通信的不同的应用程序。在TCP/IP协议中&#xff0c;用“源IP”&#xff0c;“源端口号”&#xff0c;“目的IP”&#xff0c;“目的端口号”…

Request Response

1 前言 1.1 内容概要 理解Request、Response和HTTP报文之间的关系掌握通过Request能够获得的信息 请求URL、URI、请求协议请求头、客户机和主机请求参数 掌握通过Response能够完成的设置 响应中文乱码问题响应&#xff08;Json&#xff09;字符串、图片&#xff08;文件&a…

【网络】UDP协议的简单使用

目录 服务器 客户端 测试 UDP是基于socket进行网络通信的&#xff0c;那我们这篇博客就来介绍一下基于UDP通信的基本流程&#xff0c;先让服务端和客户端进行简单的跨网络通信。 服务器 首先我们需要创建UDP套接字&#xff0c;用到的接口是 man socket 如果要使用UDP通信&am…

【Python知识宝库】面向对象编程:Python类的深度剖析

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言一、类的定义二、类的属性1. 类属性2. 实例属性 三、类的方法1. 实例方法2. 类方法 四、继承五、总结 前言 面向…

【C++ Primer Plus习题】12.3

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream> #include "stock20.h&quo…

嵌入式OpenHarmony源码基本原理详解

大家好,今天主要给大家分享一下,如何分析与使用OpenHarmony源码,欢迎交流学习。 第一:OpenHarmony源码简介 在3.0版本中,Lite系统(即轻量系统和小型系统)、标准系统各有一套独立的构建入口和上层的构建流程,但在3.2版本中,两者开始互相借鉴,取长补短并实现了融合统一;…

【环境领域EI稳定 I 院士主讲】第九届能源与环境研究进展国际学术会议(ICAEER 2024)

ICAEER 2024会议投稿经过2-3位组委会专家严格审核之后&#xff0c;符合Springer ESE征稿要求的论文将由斯普林格&#xff08;Springer-Nature&#xff09;旗下的 Environmental Science and Engineering (ISSN: 1863-5520) 出版&#xff0c;出版后提交至EI Compendex&#xff…

初步了解VTK装配体

VTK还不太了解&#xff0c;根据资料&#xff0c; vtk.vtkAssembly 是 VTK库中的一个重要类&#xff0c;允许通过将多个vtkActor对象组合在一起来创建复杂的3D模型。 import vtk import math from vtk.util.colors import *filenames ["cylinder.stl","sphere…

C++11 --- 智能指针

序言 在使用 C / C 进行编程时&#xff0c;许多场景都需要我们在堆上申请空间&#xff0c;堆内存的申请和释放都需要我们自己进行手动管理。这就存在容易造成堆内存泄露&#xff08;忘记释放&#xff09;&#xff0c;二次释放&#xff0c;程序发生异常时内存泄露等问题&#xf…

QML入门之创建可重用的组件(一)

我们在日常开发中都会封装一些组件以便于项目内重复利用。QML创建可重用组件一般有两种方法。 自定义Item使用Component创建自定义组件 自定义Item 以一个自定义按钮举例&#xff1a; import QtQuick 2.12Rectangle {id: root// 自定义属性property string btnDis: qsTr(&qu…

Windows环境利用VS2022编译 libvpx 源码教程

libvpx libvpx 是一个开源的视频编码库&#xff0c;由 WebM 项目开发和维护&#xff0c;专门用于 VP8 和 VP9 视频编码格式的编解码处理。它支持高质量的视频压缩&#xff0c;广泛应用于视频会议、在线教育、视频直播服务等多种场景中。libvpx 的特点包括跨平台兼容性、硬件加速…

JavaSE-易错题集-002

1. 下面有关java基本类型的默认值和取值范围&#xff0c;说法错误的是&#xff1f; A 字节型的类型默认值是0&#xff0c;取值范围是-2^7—2^7-1 B boolean类型默认值是false&#xff0c;取值范围是true\false C 字符型类型默认是0&#xff0c;取值范围是-2^15 —2^15-1 D l…

iOS——retain和release底层原理

retain实现原理 retain的源码&#xff1a; //使用此方法等价于使用[this retain] inline id objc_object::retain() {//确保对象不是tagged pointerASSERT(!isTaggedPointer());return rootRetain(false, RRVariant::FastOrMsgSend); }ALWAYS_INLINE id objc_object::rootR…

关系代数 | 数据库SQL

文章目录 关系运算符笛卡尔积笛卡尔积应用 运算符符号含义集合运算符并∪交∩差-笛卡尔积专门的关系运算符选择σ投影π连接⋈除 关系运算符 笛卡尔积 集合运算符中&#xff0c;主要对笛卡尔积做解释&#xff1a; 在数学中&#xff0c;两个集合X和Y的笛卡儿积&#xff08;英语…

【Linux】进程控制(一)

1. 进程创建 &#xff08;一&#xff09;认识fork函数 从已存在进程中创建一个新进程&#xff08;新进程为子进程&#xff0c;而原进程为父进程&#xff09; 进程调用fork&#xff0c;当控制转移到内核中的fork代码后&#xff0c;内核做&#xff1a; 分配新的内存块和内核数…