当前位置: 首页 > news >正文

Python每日一练(20230218)

目录​​​​​​​

1. 旋转图像

2. 解码方法

3. 二叉树最大路径和


1. 旋转图像

给定一个 × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。

你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。

示例 1:

输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[[7,4,1],[8,5,2],[9,6,3]]

示例 2:

输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]
输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]

示例 3:

输入:matrix = [[1]]
输出:[[1]]

示例 4:

输入:matrix = [[1,2],[3,4]]
输出:[[3,1],[4,2]]

提示:

  • matrix.length == n
  • matrix[i].length == n
  • 1 <= n <= 20
  • -1000 <= matrix[i][j] <= 1000

源代码: 

class Solution(object):def rotate(self, matrix):if matrix is None or len(matrix) == 1:return matrixls = len(matrix)for i in range(int(ls / 2)):begin, end = i, ls - 1 - ifor k in range(ls - 2 * i - 1):temp = matrix[end - k][begin]matrix[end - k][begin] = matrix[end][end - k]matrix[end][end - k] = matrix[begin + k][end]matrix[begin + k][end] = matrix[begin][begin + k]matrix[begin][begin + k] = tempreturn matrixif __name__ == "__main__":s = Solution()print(s.rotate([[1,2,3],[4,5,6],[7,8,9]]))print(s.rotate([[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]))print(s.rotate([[1]]))print(s.rotate([[1,2],[3,4]]))

输出:

[[7, 4, 1], [8, 5, 2], [9, 6, 3]]
[[15, 13, 2, 5], [14, 3, 4, 1], [12, 6, 8, 9], [16, 7, 10, 11]]
[[1]]
[[3, 1], [4, 2]]

2. 解码方法

一条包含字母 A-Z 的消息通过以下映射进行了 编码 :

'A' -> 1 'B' -> 2 ... 'Z' -> 26

要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,"11106" 可以映射为:

  • "AAJF" ,将消息分组为 (1 1 10 6)
  • "KJF" ,将消息分组为 (11 10 6)

注意,消息不能分组为  (1 11 06) ,因为 "06" 不能映射为 "F" ,这是由于 "6" 和 "06" 在映射中并不等价。

给你一个只含数字的 非空 字符串 s ,请计算并返回 解码 方法的 总数 。

题目数据保证答案肯定是一个 32 位 的整数。

示例 1:

输入:s = "12"
输出:2
解释:它可以解码为 "AB"(1 2)或者 "L"(12)。

示例 2:

输入:s = "226"
输出:3
解释:它可以解码为 "BZ" (2 26), "VF" (22 6), 或者 "BBF" (2 2 6) 。

示例 3:

输入:s = "0"
输出:0
解释:没有字符映射到以 0 开头的数字。含有 0 的有效映射是 'J' -> "10" 和 'T'-> "20" 。由于没有字符,因此没有有效的方法对此进行解码,因为所有数字都需要映射。

示例 4:

输入:s = "06"
输出:0
解释:"06" 不能映射到 "F" ,因为字符串含有前导 0("6" 和 "06" 在映射中并不等价)。

提示:

  • 1 <= s.length <= 100
  • s 只包含数字,并且可能包含前导零。

源代码:  

class Solution(object):def numDecodings(self, s:str) -> int:ls = len(s)if ls == 0:return 0dp = [0] * lsfor index in range(ls):if index >= 1 and int(s[index - 1:index + 1]) < 27 and int(s[index - 1:index + 1]) >= 10:if index == 1:dp[index] = 1else:dp[index] += dp[index - 2]if int(s[index]) != 0:if index == 0:dp[index] = 1else:dp[index] += dp[index - 1]return dp[ls - 1]s = Solution()
print(s.numDecodings(s = "12"))
print(s.numDecodings(s = "226"))
print(s.numDecodings(s = "0"))
print(s.numDecodings(s = "06"))

输出: 

2
3
0
0

3. 二叉树最大路径和

路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。

路径和 是路径中各节点值的总和。

给你一个二叉树的根节点 root ,返回其 最大路径和 。

示例 1:

输入:root = [1,2,3]
输出:6
解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6

示例 2:

输入:root = [-10,9,20,null,null,15,7]
输出:42
解释:最优路径是 15 -> 20 -> 7 ,路径和为 15 + 20 + 7 = 42

提示:

  • 树中节点数目范围是 [1, 3 * 104]
  • -1000 <= Node.val <= 1000

源代码:  

class TreeNode:def __init__(self, val=None):self.val = valself.left = Noneself.right = Nonedef Build(root, nodesList, i=0):if i < len(nodesList):if nodesList[i]:root = TreeNode(nodesList[i])root.left = Build(root.left, nodesList, 2*i+1)root.right = Build(root.right, nodesList, 2*i+2)return rootclass Solution:def __init__(self):self.result = float("-inf")def maxPathSum(self, root: TreeNode) -> int:if root == None:return 0self.getMax(root)return self.resultdef getMax(self, root):if root == None:return 0left = max(0, self.getMax(root.left))right = max(0, self.getMax(root.right))self.result = max(self.result, left + right + root.val)return max(left, right) + root.vals = Solution()
tree = TreeNode()
root = Build(tree, [1,2,3])
print(s.maxPathSum(root))root = Build(tree, [-10,9,20,None,None,15,7]) #null在python语言中表示为None
print(s.maxPathSum(root))

输出: 

6
42

相关文章:

Python每日一练(20230218)

目录​​​​​​​ 1. 旋转图像 2. 解码方法 3. 二叉树最大路径和 1. 旋转图像 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在原地旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像…...

基于SSM框架的狼途汽车门店管理系统的设计与实现

基于SSM框架的狼途汽车门店管理系统的设计与实现 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、…...

视频监控流程图3

<html> <head> <meta http-equiv"Content-Type" content"text/html; charsetUTF-8"/> <link rel"stylesheet" type"text/css" href"visio.css"/> <title> 视频监控流程图 </title> <…...

Linux ARM平台开发系列讲解(CAN) 2.14.3 CANFD协议介绍

1. 概述 前面章节介绍了CAN2.0协议,CAN现在主要是用在汽车领域,随着CAN的发展, 又衍生除了CANFD协议,该协议是在CAN的基础之上进行了升级,CAN2.0的最高速率是1Mbps,有限的速率导致CAN总线上负载率变高,所以CANFD就出现了,CANFD目前最高支持10Mbps。除此之外,CANFD还拥…...

参考 | 给C盘 “搬家“

参考 | 给C盘 “搬家” 将在C盘准备 “搬家” 的 文件/文件夹 完整路径 copy 下来 e.g. 路径一 “C:\Users\你的用户名\AppData\Roaming\kingsoft” 将这个 文件/文件夹 CTRLX 剪切下来 注意: 剪切后, 不需要自己重新新建, 直接执行第三步 将这个 文件/文件夹 CTRLV 粘贴到你要…...

剑指 Offer 53 - II. 0~n-1中缺失的数字

原题链接 难度&#xff1a;easy\color{Green}{easy}easy 题目描述 一个长度为n-1的递增排序数组中的所有数字都是唯一的&#xff0c;并且每个数字都在范围0&#xff5e;n-1之内。在范围0&#xff5e;n-1内的n个数字中有且只有一个数字不在该数组中&#xff0c;请找出这个数字…...

分布式id

一、分布式系统 1.1 分布式系统的定义和应用场景 分布式系统是由多个独立的计算机节点协同工作&#xff0c;以共同完成一个任务的系统。这些节点通过网络进行通信和协调&#xff0c;共享计算和存储资源&#xff0c;从而实现对更大规模问题的处理和更高系统可用性的要求。 分…...

创意编程py模拟题

前言&#xff1a;好久没写博客了&#xff0c;来水好好写一篇 注&#xff1a;本篇文章为py&#xff0c;不是c 1、敲七 版本1 题目&#xff1a; 题目描述 输出7和7的倍数&#xff0c;还有包含7的数字例如&#xff08;17&#xff0c;27&#xff0c;37…70&#xff0c;71&#…...

uniapp中条件编译

官方&#xff1a;https://uniapp.dcloud.net.cn/tutorial/platform.html#%E8%B7%A8%E7%AB%AF%E5%85%BC%E5%AE%B9 #ifndef H5 代码段… #endif 表示除了H5其他都可以编译 #ifdef H5 代码段… #endef 表示只能编译H5&#xff0c;其他的都不能编译 其他编译平台请查看官方文档。 …...

封装 YoloV5 detect.py 成 Python 库以供 python 程序使用

本项目地址 Github 本项目地址 Github Introduction YoloV5 作为 YoloV4 之后的改进型&#xff0c;在算法上做出了优化&#xff0c;检测的性能得到了一定的提升。其特点之一就是权重文件非常的小&#xff0c;可以在一些配置更低的移动设备上运行&#xff0c;且提高速度的同时…...

PostgreSQL , PostGIS , 球坐标 , 平面坐标 , 球面距离 , 平面距离

标签 PostgreSQL , PostGIS , 球坐标 , 平面坐标 , 球面距离 , 平面距离 背景 PostGIS中有两种常用的空间类型geometry和geography&#xff0c;这两种数据类型有什么差异&#xff0c;应该如何选择&#xff1f; 对于GIS来说&#xff0c;首先是坐标系&#xff0c;有两种&#…...

K3S 系列文章-5G IoT 网关设备 POD 访问报错 DNS ‘i/o timeout‘分析与解决

开篇 《K3s 系列文章》《Rancher 系列文章》 问题概述 20220606 5G IoT 网关设备同时安装 K3S Server, 但是 POD 却无法访问互联网地址&#xff0c;查看 CoreDNS 日志提示如下&#xff1a; ... [ERROR] plugin/errors: 2 update.traefik.io. A: read udp 10.42.0.3:38545-&…...

社会工程学介绍

目录前言手段和术语假托在线聊天/电话钓鱼下饵&#xff08;Baiting&#xff09;等价交换同情心尾随&#xff08;Tailgating or Piggybacking&#xff09;社交工程学的演进钓鱼式攻击电脑蠕虫垃圾邮件特别人物总结前言 在信息安全方面&#xff0c;社会工程学是指对人进行心理操…...

干货 | 有哪些安慰剂按钮的设计?

仔细观察我们的生活&#xff0c;你会发现处处都是安慰剂按钮&#xff0c;ATM的点钞声、开启空调的呼呼声&#xff0c;这些都对用户心里产生了有意的引导作用&#xff0c;当你打开了空调按钮&#xff0c;先播放声音会让你感觉你按下的按钮起到了作用。 我们的大脑不喜欢杂乱无章…...

LeetCode 每日一题 2023/2/13-2023/2/19

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录2/13 1234. 替换子串得到平衡字符串2/14 1124. 表现良好的最长时间段2/15 1250. 检查「好数组」2/16 2341. 数组能形成多少数对2/17 1139. 最大的以 1 为边界的正方形2/18 1…...

SAP 关于多种语言配置

怎样才能在登录时选择自己需要的语言登录呢&#xff1f;虽然这个问题对很多人来说可能根本就算不上问题&#xff0c;但对很多新手来说可能却是很想尽快解决的问题。 曾经有位Puber说有个很简单的办法&#xff0c;但可惜的是在我一直没找到这个办法。今天看到一份资料&#xff…...

万字长文讲述由ChatGPT反思大语言模型的技术精要

文&#xff5c;张俊林 源&#xff5c;知乎张俊林 导读&#xff1a;ChatGPT出现后惊喜或惊醒了很多人。惊喜是因为没想到大型语言模型&#xff08;LLM&#xff0c;Large Language Model&#xff09;效果能好成这样&#xff1b;惊醒是顿悟到我们对LLM的认知及发展理念&#xff0c…...

SpringBoot静态资源访问

静态资源路径 类路径下&#xff1a;/resources/static/、/resources/public/、/resources/resources/、/resources/META-INF/resources 这些路径下的资源均可直接访问&#xff1b;通过 http://ip:port/资源名称 访问即可 可在配置文件中对访问路径和访问拦截规则进行设置&…...

【物联网】智慧农业病虫害精准辨识竞赛思路及代码分享

来源&#xff1a;投稿 作者&#xff1a;LSC 编辑&#xff1a;学姐 比赛官网: https://www.dataglobal.cn/cmpt/signUpInfo200.html 任务描述 请参赛者设计智慧农业病虫害检测系统&#xff0c;给出一体化问题解决方案&#xff0c;鼓励参赛选手结合某一果园/农作物实际情况建立…...

Properties类读取配置文件

文章目录前言一、Properties类的使用 :1、创建sk.properties文件2、编写读取 properties 属性文件&#xff0c;并输出属性值。3、运行结果总结前言 Properties类的介绍 : 在Java中提供了 java.util.Properties 类&#xff0c;来读取 .properties 属性文件。在程序调用 Propert…...

5分钟从零到完整:用SongGeneration开启你的AI音乐创作之旅

5分钟从零到完整&#xff1a;用SongGeneration开启你的AI音乐创作之旅 【免费下载链接】SongGeneration 腾讯开源SongGeneration项目&#xff0c;基于LeVo架构实现高品质AI歌曲生成。它采用混合音轨与双轨并行建模技术&#xff0c;既能融合人声与伴奏达到和谐统一&#xff0c;也…...

CCF-CSP 39-2 水印检查(watermark)【C++】

题目 https://sim.csp.thusaac.com/contest/39/problem/1https://sim.csp.thusaac.com/contest/39/problem/1 思路参考&#xff1a; 80分 暴力求解&#xff0c;遍历所有可能的k&#xff0c;检验是否满足条件&#xff0c;可得80分 时间复杂度&#xff1a;O(L*n^2)&#xff0…...

告别PDF转换烦恼:Marker让学术文档秒变Markdown的完整指南

告别PDF转换烦恼&#xff1a;Marker让学术文档秒变Markdown的完整指南 【免费下载链接】marker 一个高效、准确的工具&#xff0c;能够将 PDF 和图像快速转换为 Markdown、JSON 和 HTML 格式&#xff0c;支持多语言和复杂布局处理&#xff0c;可选集成 LLM 提升精度&#xff0c…...

Marin说PCB之GMSL2 POC电路优化实战---从仿真到测试的完整解析

1. GMSL2 POC电路问题诊断与优化思路 最近在测试GMSL2 POC电路时遇到了一个典型问题&#xff1a;多路信号的插损&#xff08;S21&#xff09;和回损&#xff08;S11&#xff09;指标不达标。这种情况在实际项目中并不少见&#xff0c;但每次遇到都需要我们仔细分析原因并找到有…...

CodeSys自定义HTML5控件:从零构建到工程实践

1. 为什么需要自定义HTML5控件&#xff1f; 在工业自动化领域&#xff0c;可视化监控是设备管理的重要环节。CodeSys作为主流的工业控制开发平台&#xff0c;其WebVisu功能虽然提供了基础控件库&#xff0c;但在实际项目中经常会遇到这样的尴尬&#xff1a;标准控件无法满足特定…...

美图靠AI一年收入38亿,不靠免费大模型API,靠的是什么?

财报数据显示&#xff0c;美图2025年全年实现营业收入38.6亿元&#xff0c;同比大幅增长28.8%&#xff0c;整体营收规模再创新高&#xff0c;展现出核心业务的强劲增长韧性。不过公司常规账面净利润为7亿元&#xff0c;同比下降12.7%&#xff0c;看似利润下滑的背后&#xff0c…...

5步打造高效知识管理系统:Obsidian模板库实战指南

5步打造高效知识管理系统&#xff1a;Obsidian模板库实战指南 【免费下载链接】OB_Template OB_Templates is a Obsidian reference for note templates focused on new users of the application using only core plugins. 项目地址: https://gitcode.com/gh_mirrors/ob/OB_…...

告别龟速下载!一个Shell脚本搞定GFZ非潮汐大气负载数据(附站点坐标文件模板)

极速批量获取GFZ非潮汐大气负载数据的Shell脚本实战指南 在GNSS数据处理和地球物理研究中&#xff0c;获取高精度的非潮汐大气负载(NTAL)数据是分析站点位移的关键环节。德国地学研究中心(GFZ)作为全球权威机构&#xff0c;其提供的NTAL数据产品被广泛应用于科研和工程领域。然…...

MusePublic Art Studio参数详解:随机种子锁定与艺术风格复现方法

MusePublic Art Studio参数详解&#xff1a;随机种子锁定与艺术风格复现方法 1. 理解随机种子&#xff1a;艺术创作的"基因密码" 在AI图像生成领域&#xff0c;随机种子就像是每幅作品的DNA序列。它决定了生成过程中的随机性因素&#xff0c;是控制输出结果一致性的…...

VCAM虚拟摄像头:革新移动设备视觉交互的技术探索

VCAM虚拟摄像头&#xff1a;革新移动设备视觉交互的技术探索 【免费下载链接】com.example.vcam 虚拟摄像头 virtual camera 项目地址: https://gitcode.com/gh_mirrors/co/com.example.vcam VCAM虚拟摄像头是一款基于Xposed框架的安卓应用&#xff0c;通过HOOK技术&…...