力扣(2024.06.23)

1. 62——不同路径

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

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?

标签:数学,动态规划,组合数学

代码:

class Solution:def uniquePaths(self, m: int, n: int) -> int:dp = []for i in range(m):dp.append([0] * n)for i in range(m):dp[i][0] = 1for j in range(n):dp[0][j] = 1for i in range(1, m):for j in range(1, n):dp[i][j] = dp[i - 1][j] + dp[i][j - 1]return dp[m - 1][n - 1]

2. 63——不同路径2

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

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

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

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

标签:数组,动态规划,矩阵

代码:

class Solution:def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:m = len(obstacleGrid)n = len(obstacleGrid[0])dp = []for i in range(m):dp.append([0] * n)for i in range(m):if obstacleGrid[i][0] != 1:dp[i][0] = 1else:breakfor j in range(n):if obstacleGrid[0][j] != 1:dp[0][j] = 1else:breakfor i in range(1, m):for j in range(1, n):if obstacleGrid[i][j] != 1:dp[i][j] = dp[i - 1][j] + dp[i][j - 1]return dp[m - 1][n - 1]

3. 64——最小路径和

给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。

说明:每次只能向下或者向右移动一步。

标签:数组,动态规划,矩阵

代码:

class Solution:def minPathSum(self, grid: List[List[int]]) -> int:m = len(grid)n = len(grid[0])dp = []for i in range(m):dp.append([0] * n)dp[0][0] = grid[0][0]for i in range(1, m):dp[i][0] = grid[i][0] + dp[i - 1][0]for j in range(1, n):dp[0][j] = grid[0][j] + dp[0][j - 1]for i in range(1, m):for j in range(1, n):up = grid[i][j] + dp[i - 1][j]left = grid[i][j] + dp[i][j - 1]dp[i][j] = min(up, left)return dp[m - 1][n - 1]

4. 65——有效数字

给定一个字符串 s ,返回 s 是否是一个有效数字。

例如,下面的都是有效数字:"2", "0089", "-0.1", "+3.14", "4.", "-.9", "2e10", "-90E3", "3e+7", "+6e-1", "53.5e93", "-123.456e789",而接下来的不是:"abc", "1a", "1e", "e3", "99e2.5", "--6", "-+3", "95a54e53"

一般的,一个有效数字可以用以下的规则之一定义:

  1. 一个整数后面跟着一个可选指数。
  2. 一个十进制数后面跟着一个可选指数。

一个整数定义为一个可选符号 '-' 或 '+' 后面跟着数字。

一个十进制数定义为一个可选符号 '-' 或 '+' 后面跟着下述规则:

  1. 数字后跟着一个小数点 .
  2. 数字后跟着一个小数点 . 再跟着数位。
  3. 一个小数点 . 后跟着数位。

指数定义为指数符号 'e' 或 'E',后面跟着一个整数。

数字定义为一个或多个数位。

标签:字符串(目前不会)

代码:

5. 66——加一

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。

标签:数组,数学

代码:

class Solution:def plusOne(self, digits: List[int]) -> List[int]:for i, n in enumerate(digits):digits[i] = str(n)num = int("".join(digits))num = num + 1digits.clear()for i, n in enumerate(str(num)):digits.append(int(n))return digits

6. 67——二进制求和

给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。

标签:位运算,数学,字符串,模拟

代码:

class Solution:def addBinary(self, a: str, b: str) -> str:pointer1 = len(a) - 1pointer2 = len(b) - 1add = 0res = []while pointer1 >= 0 and pointer2 >= 0:sum = int(a[pointer1]) + int(b[pointer2]) + addres.append(str(sum % 2))add = sum // 2pointer1 = pointer1 - 1pointer2 = pointer2 - 1while pointer1 >= 0:sum = int(a[pointer1]) + addres.append(str(sum % 2))add = sum // 2pointer1 = pointer1 - 1while pointer2 >= 0:sum = int(b[pointer2]) + addres.append(str(sum % 2))add = sum // 2pointer2 = pointer2 - 1if add:res.append(str(add))return "".join(res[::-1])

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

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

相关文章

Android面试题精选——再聊Android-Handler机制

​ static final ThreadLocal sThreadLocal new ThreadLocal(); //创建当前线程的Looper对象 private static void prepare(boolean quitAllowed) { if (sThreadLocal.get() ! null) { throw new RuntimeException(“Only one Looper may be created per thread”); } sThre…

华为欧拉 openEuler24.03 更新 阿里 yum源

华为欧拉 openEuler24.03 更新 阿里 yum源 备份 yum 源编写 阿里云 yum源 配置文件更新 yum 缓存 备份 yum 源 mv /etc/yum.repos.d/openEuler.repo /etc/yum.repos.d/openEuler.repo.bak编写 阿里云 yum源 配置文件 vim /etc/yum.repos.d/openEuler.repo内容如下&#xff…

计组--存储系统--复习专用...

文章目录 前言一、存储系统的分类二、存储器的性质1.存储容量2.存储器的速度 三、存储器的层次结构四、主存储器SRAM:2.译码方式: DRAM:刷新: ROM: 五、存储容量的扩展六、高速存储器总结 前言 学无止境,笔勤不辍。本…

【进阶篇-Day5:JAVA常用API的使用(Math、BigDecimal、Object、包装类等)】

目录 1、API的概念2、Object类2.1 Object类的介绍2.2 Object的toString()方法2.3 Object的equals()方法2.4 Objects概述 3、Math类4、System类5、BigDecimal类6、包装类6.1 包装类的概念6.2 几种包装类(1)手动转换包装类:(2&#…

电压互感器在线监测的原理

电压互感器在线监测的原理主要基于电磁感应、电场效应以及一系列先进的监测技术。以下是对其原理的详细解释: 一、电磁感应原理 电压互感器(Voltage Transformer,简称VT)本质上是一种降压变压器,它利用电磁感应的原理…

pg分区表和mysql分区表的创建及删除添加操作

一、分区的类型 1、pg分区的类型 范围划分 列表划分 哈希分区 2、mysql分区的类型 范围分区 列表分区 hash分区 列分区 密匙分区 子分区 二、pg范围分区表的创建删除添加操作 1、pg分区表的创建 2、pg的分区表删除 3、pg分区表的添加 创建新的子分区 添加新创建的子分区 …

python 字符串驻留机制

偶然发现一个python字符串的现象: >>> a 123_abc >>> b 123_abc >>> a is b True >>> c abc#123 >>> d abc#123 >>> c is d False 这是为什么呢,原来它们的id不一样。 >>> id(a)…

随想录 Day 66 110. 字符串接龙 105. 有向图的完全可达性 106. 岛屿的周长

随想录 Day 66 110. 字符串接龙 105. 有向图的完全可达性 106. 岛屿的周长 110. 字符串接龙 110. 字符串接龙 时间限制:1.000S 空间限制:256MB 题目描述 字典 strList 中从字符串 beginStr 和 endStr 的转换序列是一个按下述规格形成的序列&#xff1…

浙大宁波理工学院2024年成人高等继续教育招生简章

浙大宁波理工学院,这所承载着深厚学术底蕴和卓越教育理念的学府,正热烈开启2024年成人高等继续教育的招生之门。这里,是知识的殿堂,是智慧的摇篮,更是您实现个人梦想、追求更高境界的起点。 ​浙大宁波理工学院始终坚…

实战指南:部署Elasticsearch 8.4.1与Kibana 8.4.1并集成IK分词器

首先拉取elasticsearch和kibana镜像 docker pull elasticsearch:8.4.1 docker pull kibana:8.4.1如果遇到镜像拉去不下来,遇到如下问题: [ERROR] error pulling image configuration: Get " https://production.cloudflare.docker.com/registry-v…

【吊打面试官系列-Mysql面试题】视图有哪些优点?

大家好,我是锋哥。今天分享关于 【视图有哪些优点?】面试题,希望对大家有帮助; 视图有哪些优点? 答: (1) 视图能够简化用户的操作; (2) 视图使用户能以多种角度看待同一数据; (3) 视…

编程参考 - GCC的条件编译

4 Conditionals 条件是一种指令,它指示预处理器选择是否在传递给编译器的最终标记流中包含一段代码。预处理器条件可以测试算术表达式,也可以测试名称是否定义为宏,或者使用特殊的defined操作符同时测试这两种表达式。 A conditional is a di…

【C#】使用数字和时间方法ToString()格式化输出字符串显示

在C#编程项目开发中,几乎所有对象都有格式化字符串方法,其中常见的是数字和时间的格式化输出多少不一样,按实际需要而定吧,现记录如下,以后会用得上。 文章目录 数字格式化时间格式化 数字格式化 例如,保留…

【docker1】指令,docker-compose,Dockerfile

文章目录 1.pull/image,run/ps(进程),exec/commit2.save/load:docker save 镜像id,不是容器id3.docker-compose:多容器:宿主机(eth0网卡)安装docker会生成一…

4、SpringMVC 实战小项目【加法计算器、用户登录、留言板、图书管理系统】

SpringMVC 实战小项目 3.1 加法计算器3.1.1 准备⼯作前端 3.1.2 约定前后端交互接⼝需求分析接⼝定义请求参数:响应数据: 3.1.3 服务器代码 3.2 ⽤⼾登录3.2.1 准备⼯作3.2.2 约定前后端交互接⼝3.2.3 实现服务器端代码 3.3 留⾔板实现服务器端代码 3.4 图书管理系统准备后端 3…

【电路笔记】-共发射极放大器

共发射极放大器 文章目录 共发射极放大器1、概述2、完整的CEA配置3、直流等效电路4、交流等效电路5、输入阻抗6、输出阻抗7、电压增益8、微分电容的重要性9、信号源的衰减10、电流增益11、相位反转12、总结1、概述 在本文中,我们将介绍基于双极晶体管的放大器的最后一种拓扑:…

2024 WaniCTF repwn 部分wp

lambda 文本编辑器打开附件 稍微格式化一下 结合gpt理解题目意思。 脚本 home 附件拖入ida 简单的检查环境和反调试,进构造flag的函数 简单的ollvm,用d810嗦一下 下断点调试,通过修改eip跳过反调试。查看dest内容,需要稍微向下翻一…

GitHub每周最火火火项目(6.17-6.23)

项目名称:1Panel-dev / MaxKB 项目介绍:MaxKB 是一个基于 LLM 大语言模型的知识库问答系统。它具有开箱即用的特点,支持快速嵌入到第三方业务系统中,由 1Panel 官方出品。该系统可以帮助用户快速构建知识库,并通过自然…

QT中利用动画弄一个侧边栏窗口,以及贴条效果

1、效果 2、关键代码 void Widget::on_sliderBtn_clicked() {m_sliderWidget->show();QPropertyAnimation* animation = new QPropertyAnimation(m

第14章. GPIO简介

目录 0. 《STM32单片机自学教程》专栏 14.1 GPIO基本结构 14.1.1 保护二极管 14.1.2 上拉、下拉电阻 14.1.3 施密特触发器 14.1.4 P-MOS 管和 N-MOS 管 14.1.5 输出数据寄存器 14.1.6 输入数据寄存器 14.2 GPIO工作模式 14.2.1 输入模式 14.2.1.1 输入浮空模式 1…