news 2026/4/18 15:17:29

python编程实战(三)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python编程实战(三)

题目1:

给你一个整数数组nums,返回 数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积 。

题目数据保证数组nums之中任意元素的全部前缀元素和后缀的乘积都在32 位整数范围内。

不要使用除法,且在O(n)时间复杂度内完成此题。

关键数据结构:

列表(一维数组)

核心思路:

除nums[i]元素之外的元素乘积可以分为两部分,nums[i]之前的元素的乘积和nums[i]之后的元素的乘积;将数组num正向遍历一遍之后,可以再反向遍历一遍,然后用一个数组先存储前元素乘积,再存储后元素乘积。

代码:

class Solution:
def productExceptSelf(self, nums: List[int]) -> List[int]:
n = len(nums)
ans = [1] * n
# 从左到右计算前缀积
prefix = 1
for i in range(n):
ans[i] = prefix
prefix *= nums[i]
# 从右到左计算后缀积并乘以结果
suffix = 1
for i in range(n - 1, -1, -1):
ans[i] *= suffix
suffix *= nums[i]
return ans

题目2:

给你一个未排序的整数数组nums,请你找出其中没有出现的最小的正整数。

请你实现时间复杂度为O(n)并且只使用常数级别额外空间的解决方案。

关键数据结构:
用列表实现哈希表效果

关键思路:
原地哈希算法,我们希望在位置i上的值是i+1,如在位置0上的位置是1,这样可以起到高效的排序效果;如果位置i上的数!=i+1,那么此时的i+1就是缺失的最小正整数。

代码:
class Solution:
def firstMissingPositive(self, nums: List[int]) -> int:
n = len(nums)
for i in range(n):
while 1 <= nums[i] <= n and nums[nums[i] - 1] != nums[i]:
target_idx = nums[i] - 1
nums[i], nums[target_idx] = nums[target_idx], nums[i]

for i in range(n):
if nums[i] != i + 1:
return i + 1

return n + 1

题目3:

给定一个mxn的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用原地算法(原地算法是指在算法执行过程中,只使用常数量级的额外空间,主要通过对输入数据的原有存储空间进行修改来完成计算,而不需要额外的数据结构来存储中间结果或输出结果)。

关键数据结构:

二维数组

思路:

使用双循环遍历矩阵每个元素,如果某个元素为0,将其对应的行、列通过布尔值打上标记;再次双循环遍历矩阵,如果某一行或者某一列标记为零,将整行或整列元素置0

代码(这里偷懒没用原地算法):

class Solution:
def setZeroes(self, matrix: List[List[int]]) -> None:
m, n = len(matrix), len(matrix[0])
row = m * [False]
col = n * [False]

for i in range(m):
for j in range(n):
if matrix[i][j] == 0:
row[i] = True
col[j] = True

for i in range(m):
for j in range(n):
if row[i] or col[j]:
matrix[i][j] = 0

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 9:45:04

模型性能监控仪表盘:实时追踪EmotiVoice服务状态

模型性能监控仪表盘&#xff1a;实时追踪EmotiVoice服务状态 在AI语音技术快速渗透到智能客服、虚拟偶像、互动游戏等场景的今天&#xff0c;用户早已不再满足于“能听清”的机械朗读。他们期待的是富有情感、个性鲜明、宛如真人的语音交互体验。正是在这一背景下&#xff0c;像…

作者头像 李华
网站建设 2026/4/18 10:46:31

36、保障 Linux 系统安全及进行安全审计

保障 Linux 系统安全及进行安全审计 在网络环境日益复杂的今天,保障 Linux 系统的安全至关重要。本文将详细介绍 Linux 系统安全保障的相关技术和方法,以及计算机安全审计的相关内容。 防火墙技术 防火墙是保障网络安全的重要工具,常见的防火墙类型包括应用代理网关防火墙…

作者头像 李华
网站建设 2026/4/18 10:46:32

京东云鼎入驻方案解读——通往协同的“高架桥”与“快速路”

文章目录[toc]一、 自研软件系统&#xff1a;一项长期且沉重的技术“基建”1. 投入本质&#xff1a;为何代价高昂&#xff1f;2. 投入成本全景&#xff1a;时间与金钱的“无底洞”二、 软件著作权&#xff1a;一场至少90天的“官方流程马拉松”1. 时间消耗是最大成本2. 策略建议…

作者头像 李华
网站建设 2026/4/18 12:07:26

工业级语音模组的USB突围——AP0316如何破解复杂环境连接难题

USB接口因通用性成为消费电子的标配&#xff0c;但在工厂车间、矿山井下等工业场景中&#xff0c;却面临着电磁干扰、接地电位差、极端温湿度等多重挑战。传统语音模组的USB接口常出现数据传输中断、噪音干扰加剧、设备枚举失败等问题&#xff0c;而AP0316作为专为工业场景设计…

作者头像 李华
网站建设 2026/4/18 10:18:13

**AI漫剧制作工具2025推荐,解锁低成本创意变现新路径*

AI漫剧制作工具2025推荐&#xff0c;解锁低成本创意变现新路径据《2025中国数字内容产业白皮书》显示&#xff0c;2025年国内漫剧市场规模预计突破120亿元&#xff0c;同比增长65%&#xff0c;但传统制作模式下&#xff0c;高达70%的创作者受困于剧本改编难、制作成本高、周期长…

作者头像 李华
网站建设 2026/4/18 8:07:55

22、深入了解 fwsnort:从运行到配置与使用

深入了解 fwsnort:从运行到配置与使用 1. 运行 fwsnort 当 fwsnort 安装在支持内核字符串匹配的系统上后,就可以从命令行启动它。通常,fwsnort 以 root 身份执行,因为默认情况下它会查询 iptables 以确定运行内核中可用的扩展,然后相应地调整翻译过程。以下是运行 fwsn…

作者头像 李华