news 2026/10/18 6:44:26

Leetcode新手入门130 Day3

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Leetcode新手入门130 Day3

Leetcode新手入门130 Day3

    • ==可迭代对象==
    • ==不可迭代对象==
    • ==切片[]==
    • ==str.join()==
    • ==n.pop(下标)==
    • ==n.remove(值)==
    • ==n.reverse()==
    • ==del list[idx]==
    • ==DP 本质:==
    • ==print(*n) 解包**位置参数**(列表 / 元组)==
    • ==集合==
    • ==enumerate==
    • ==str.count(子串)==
    • noob41 神秘石像的镜像序列
    • noob42 左侧严格小于计数
    • noob43 牛牛写作业
    • noob44 数组技术维护

可迭代对象

能够被逐个取出元素的对象
可以用在for循环,*解包,[]切片,list()转换
字符串str
列表list
元组tuple
集合set
字典dict
range对象()
文件对象、生成器

不可迭代对象

int整数
float浮点数
bool布尔值

切片[]

[:n] # 取前 n 个
[-n:] # 取最后 n 个
[:-n] # 去掉末尾 n 个
[::-1] # 反转
[::2] # 步长2,隔一个,取一个

str.join()

join 是字符串的方法,用法为「分隔符字符串.join(序列)」。
它会把序列里的所有元素拼接成一个字符串,并在相邻元素之间插入这个分隔符。
⚠️ 注意:序列中的元素必须全部是字符串,不能直接放数字!
print(‘ ’.join(map(str,list)))

n.pop(下标)

n 必须是列表 list,pop() 是列表的内置方法,用法为「列表.pop([下标])」。
n.pop() 不带参数时,默认删除列表的最后一个元素。

n.remove(值)

按照元素删除
只删除第一个匹配的值

n.reverse()

.reverse()是列表方法,字符串没有 reverse 方法

del list[idx]

按照下标删除

写法 删除依据 返回值
list.pop(idx) 下标 返回被删掉的元素
del list[idx] 下标 无返回值
list.remove(val) 元素值 无返回值,删除第一个等于 val 的元素

DP 本质:

  1. 拆分问题;
  2. 子问题结果存储(dp 数组),避免重复计算;
  3. 大问题的解由更小子问题的解推出;
  4. 子问题一旦算出,不再改变(无后效性)。

不是所有题目都能用 DP!必须满足:重叠子问题 + 最优子结构 + 无后效性。

print(*n) 解包位置参数(列表 / 元组)

把 n 里面每一项拆开,空格分隔打印出来,不带括号。

集合

{要放进集合的元素 for 循环变量 in 可迭代对象 if 条件}

enumerate

遍历可迭代对象a,同时返回:下标+对应元素

str.count(子串)

统计一个字符串中,某个子串一共出现了多少次
字符串.count(要找的子串)
返回值:出现的总次数

====================

noob41 神秘石像的镜像序列

# 可以建一个空的列表# 也可以建一个 0 列表,替换,让 doubao 评估一下是否有意义,还是只有二维有意义num=[1,2,3,4],n=4,dp=[0,0,0],idx=0# 下标逻辑,一定要搞清楚-i=3:dp[0]=4,idx=1-i=2:dp[1]=3,idx=2-i=1:dp[2]=2,idx=3👉 此时 idx=3,dp 最大下标是2,下一轮-i=0:执行 `dp[3]=num[0]` → `dp[3]` 不存在,直接报错!

noob42 左侧严格小于计数

双指针
i负责遍历
j负责计数

# 最开始写成了单层嵌套,n=int(input())a=list(map(int,input().split()))dp=[0]*n min_val=min(a)max_val=max(a)# 获取所有最小、最大元素下标min_idx_set={ifori,numinenumerate(a)ifnum==min_val}max_idx_set={ifori,numinenumerate(a)ifnum==max_val}term=0s=0foriinrange(n):ifiinmax_idx_set:dp[i]=i# 最大值:dp等于下标elifiinmin_idx_setori==0:dp[i]=0# 最小值 或者 i=0:dp置0else:ifa[i]>a[i-1]:term=term+1s=s+term dp[i]=sprint(*dp)

noob43 牛牛写作业

行号不一定要分类讨论,用2n+1,2n+2也可以
s/n可以放在输出里

importsys lines=sys.stdin.read().splitlines()T=int(lines[0])foriinrange(T):n=int(lines[2*i+1])a=list(map(int,lines[2*i+2].split()))mina=min(a)maxa=max(a)pole=maxa-mina ave=sum(a)/n s=0forjinrange(n):s=s+(a[j]-ave)**2print(pole,f"{s/n:.3f}")

noob44 数组技术维护

lines = sys.stdin.read().splitlines()

importsys lines=sys.stdin.read().splitlines()T=int(lines[0])foriinrange(T):n,k=list(map(int,lines[2*i+1].split()))a=list(map(int,lines[2*i+2].split()))S=0cnt=0forjinrange(n):ifa[j]>=k:S=S+a[j]ifa[j]==0andS>=1:S-=1cnt+=1else:passprint(cnt)

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

Ubuntu桌面美化完全指南:从主题、图标到终端配置的实用技巧

刚装好 Ubuntu 的那天晚上,大多数人都会对着默认桌面发一会儿呆:灰色的顶栏、不算难看的壁纸、文件夹图标中规中矩——说不上丑,但总觉得少了点“这是我的电脑”的感觉。这时候打开系统设置换张壁纸,算是第一次美化尝试。但真正入…

作者头像 李华
网站建设 2026/10/18 6:42:33

YOLO26快递包裹自动识别检测实战:从数据集到部署全流程解析

这两年一直在做物流场景的视觉识别项目,说实话快递包裹的自动检测属于那种“看着简单、做起来全是坑”的方向。传统分拣线上大多依赖扫码枪和人工目检,一旦遇到面单破损、条码污损、包裹堆叠,整个环节就卡住了。今年物流算法组立项做基于YOLO…

作者头像 李华
网站建设 2026/10/18 6:42:16

2027考研数学金榜SVIP班:高数+线代+概率统计系统课程,基础薄弱考生复习利器

课程概述 2027考研数学金榜SVIP班是一套针对考研数学的系统性备考课程,内容覆盖高等数学和线性代数两大核心科目。课程按照学习阶段分为零基础入门、基础能力通关和大纲考点精讲等多个模块,适合不同基础水平的考生循序渐进地学习。 配套内容 打开资料详…

作者头像 李华
网站建设 2026/10/18 6:38:19

前端转AI必学:用pytest构建可靠的AI项目测试体系

1. 从手写脚本到测试框架:为什么前端转 AI 必须跨过这道坎前端开发者转 AI 的第一道分水岭,往往不是数学,也不是模型结构,而是代码验证方式的彻底转变。做前端时,你改一行样式,刷新浏览器就能看到结果&…

作者头像 李华
网站建设 2026/10/18 6:37:34

LF-AI-STREAM:面向本地化AI工程的可验证资源契约体系

简介:LF-AI-STREAM-AI人工智能资源是一套面向物联网视频智能分析开发者的GB28181标准兼容解决方案,聚焦AI赋能的实时流媒体处理与设备协同控制,适用于安防监控、边缘智能分析等工业级应用场景,适合具备Java后端开发与Vue前端基础的…

作者头像 李华