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

纯小白,纯玩,大佬勿喷Day4 今天算是做完了

前沿

没想到今天才做完,但是这二十道题收获确实很多,也算是在算法开了一个小头吧,见识到更广阔的世界总归是好的

867.转置矩阵

查了一下,确实内置了这么一个函数,直接就秒了,当然大佬也有其他方式,但还是到此为止吧,后面的风景会更加精彩

class Solution:    def transpose(self, matrix: List[List[int]]) -> List[List[int]]:        return list(zip(*matrix))

2586.统计范围内的元音字符串数

class Solution:    def vowelStrings(self, words: List[str], left: int, right: int) -> int:        count = 0        v = {'a', 'e', 'i', 'o', 'u'}        for i in range(left,right + 1):            word = words[i]            if word[0] in v and word[-1] in v:                count += 1        return count

其实这道题吗,翻译起来也很简单,就是一个数组拿出来之后,给定一个范围,并且这个范围内第i个是一个头尾都是元音字符的,摘出来之后,列个表符合就好,然后翻译成代码就完成了

当然这道题还可以优化,比如说把摘出的范围单独用变量表示出来,让i去遍历,每一遍都摘出来头尾去比对就好

class Solution:def vowelStrings(self, words: List[str], left: int, right: int) -> int:cutted_list = words[left:right+1]target_list = ["a","e","i","o","u"]counter = 0for i in range(len(cutted_list)):if cutted_list[i][0] in target_list and cutted_list[i][-1] in target_list:counter += 1return counter

优化后的代码如上

class Solution: def vowelStrings(self, words: List[str], left: int, right: int) -> int: return sum(s[0] in "aeiou" and s[-1] in "aeiou" for s in '''words[left:right+1]) 作者:灵茶山艾府 链接:https://leetcode.cn/problems/count-the-number-of-vowel-strings-in-range/solutions/2163153/mei-ju-by-endlesscheng-p5ju/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。'''

大佬的代码更是删繁就简,当然还是那句话,目前阶段应该做到的事能够独立做出来题,完赛是最重要的

852.山脉数组的峰顶索引

leetcode上第一道中等题目,让我来尝尝咸淡

class Solution:    def peakIndexInMountainArray(self, arr: List[int]) -> int:        n = len(arr)        i = 1        v1,v2,v3 = 0,0,0        while v1 >= v2 or v2 <= v3:            v1 = arr[i-1]            v2 = arr[i]            v3 = arr[i+1]            i += 1        return i - 1

这道题理解起来还是不难的,就是爬山坡,爬到极大值(注意不是最大值),输出角标,如何得到山峰呢,极大值嘛,只要比左右都要大就好了,也就是一个判断,然后循环判断,直到找到这个值就不用继续往后找了,也能写出一个,但是这道题要求时间复杂度为 O(log(n))
当然这就是我的问题了,翻阅资料才知道,采取二分法就是可以得到O(log(n)),这道题也不难理解,可以当成一个二次函数,找到对称轴(这里只是一个形象比喻,实际还并非如此,但道理如此),根据上坡还是下坡判断峰顶位置
灵茶山艾府的个人空间-灵茶山艾府个人主页-哔哩哔哩视频
在思考的时候不用两边一起思考,反倒是,可以单从一边思考,因为我们要找这转折点,什么是转折呢,正如上下坡,比一边大小就好了,从左往右,找峰值,找到什么时候arr[i]>arr[i+1]那就什么时候成立

class Solution: def peakIndexInMountainArray(self, arr: List[int]) -> int: left, right = 0, len(arr) - 2 while left + 1 < right: mid = (left + right) // 2 if arr[mid] > arr[mid + 1]: right = mid else: left = midreturn right 
'''	
作者:灵茶山艾府 链接:https://leetcode.cn/problems/peak-index-in-a-mountain-array/solutions/2984800/er-fen-gen-ju-shang-po-huan-shi-xia-po-p-uoev/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。'''

简单来说就是不断进行二分,缩小区间,然后逼近这个极值点,不满足条件,就返回我们想要的答案,

反思与体悟

历经四天,也是粗粗拼了一下基础算法题,里面投射的数学思想研究问题的思路很值得我多去积累学习,日后其实可以多做,再次体会里面数论的思想,以及部分算法,在做题当中再次巩固对于python基础语法基础和翻译的能力

另外的主题

我还发现一个好玩的网站,好像更适合我这种中国宝宝体质,稍微做了做bandit,还挺有意思,也日后每天做一两道吧
OverTheWire: Wargames

0.基础ssh访问

ssh user@ip -p 端口

1.基础指令

ls cd cat file du find
ZjLjTmM6FvvyRnrb2rfNWOZOTa6ip5If

2.特殊字符

其实这就蕴含博弈了
abs 中 特殊字符 -
“-- ” ./
263JGJPfgU6LtdEvgfWU1XP5yac29mFx

3.非规范文件

引号对于文件整体的重要性"my file"
MNk8KNH3Usiio41PRUEoDFPqfxLPlSmx

4.类隐写

.隐藏 ls 但用find 可以看见一个.(呃,无关
.本级目录
..上级目录
.开头为隐藏文件
-a 全部-l 详细 可以-la
ls -la 之后 . .. 这两个意思不是文件而是上下级目录
2WmrDFRmJIq3IPxneAaMGhap0pFhF3NJ

5.多文件搜索

多文件搜索txt
笨办法,数量少,挨个file
好方法 遍历所有 -file0* 文件,批量检测类型并过滤结果
for f in ./-file0*; do file "$f" | grep "ASCII text"; done

4oQYVPkxZOOEOO5pTW81FB8j8lxXGUQw

6.条件检索

find 条件检索
-type f -size 1033c ! -executable
还是要熟记一些指令
HWasnPhtq9AVKe0dmk45nxy20cvUa6EG

7.关于find一些有趣小知识

find / -type f -user bandit7 -group bandit6 -size 33c 2>/dev/n
ull
/遍历 -type -user -group -size 2>/dev/null权限
2>/dev/null
morbNTDkSW6jIlUc0ymOdMaLnOlFVAaj

8

grep抓取关键词
dfwvzFQi4mU0wfNbFOe9RoWskMLg7eEc

9

利用sort排序 uniq统计次数 grep -E "^ * 1"
4CKMh1JI91bUIZZPXDqGanal4xvAg0JM

10

strings 可读ascii grep -E "=+" 正则表达式 sed "s/.* =+//" 替换
grep -v "^$"
FGUW5ilLVJrxX9kMYMmlN4MgbpfMiqey

写在最后

其实到第七个就有点记不大住了,我觉得下次开始再从第七个开始可以

错题集

【错误】不能快速判断复杂度;【订正】常见知识需要补足

  • 没有循环 / 固定次数循环 → O (1) 【常数级】
  • 一层 for/while 循环 → O (n) 【线性级】
  • 两层嵌套循环 → O (n²) 【平方级】
  • 三层嵌套循环 → O (n³) 【立方级】
  • 折半 / 二分操作 → O (log n) 【对数级】
  • 哈希表 (Counter) 增删查 → O(1)
http://www.jsqmd.com/news/529935/

相关文章:

  • 保姆级教程:在阿里云GPU服务器上用Docker容器跑TensorFlow 1.15 Benchmark(附避坑指南)
  • Wallpaper Engine资源提取工具完全指南:从文件解锁到创意应用
  • 10分钟极速上手:OpCore-Simplify黑苹果配置工具完全指南
  • OpenClaw技能扩展指南:GLM-4.7-Flash驱动日志分析与报告生成
  • 终极Windows Cleaner指南:免费快速解决C盘爆红问题
  • 2026年3月,探寻销量好的去屑洗发水品牌口碑,去屑洗发水厂商精选国内优质品牌分析 - 品牌推荐师
  • Hunyuan-MT-7B快速上手:VS Code Remote-SSH直连调用Chainlit开发调试
  • 告别繁琐设计:Forza Painter让创意涂装触手可及
  • 20253915 2024-2025-2 《网络攻防实践》实验三 -
  • 3个革命性的文档自动化下载功能:kill-doc完全指南
  • DeepSeek-R1推理模型实战体验:Ollama一键部署,智能问答轻松上手
  • 一键启动,隐私无忧:CogVideoX-2b CSDN本地化视频生成全攻略
  • 1.1.1 AI->GB T 42755-2023数据集标注标准:GB T 42755-2023《人工智能 面向机器学习的数据标注规程》
  • dvwa靶场通关反射型xss
  • 5个高效技巧:用WindowsCleaner实现系统性能飞跃
  • 2026年3月佛山全息投影与沉浸式体验厂家最新推荐:全息餐厅、数字展厅、裸眼3D片源、文旅光影、互动投影厂家选择指南 - 海棠依旧大
  • OpenClaw故障自愈方案:QwQ-32B监控脚本异常并自动恢复
  • 店小秘ERP是免费的吗?有哪些功能可以用? - 速递信息
  • 3步解决学术引用难题:GB/T 7714国家标准样式全攻略
  • 零基础玩转AutoGLM-Phone-9B:5分钟搞定移动端多模态AI部署
  • 从传统运维到智能管控:风力发电场借西门子 S7-200PLC、S7-1200PLC 以太网通讯实现升级
  • Cadence OrCAD原理图封装实战:用Excel快速处理88管脚芯片(附AD9135案例)
  • Android10开机向导定制实战:从零修改wizard_script.xml到调试技巧
  • wotiolora:面向WoT的轻量级LoRaWAN终端协议栈实现
  • 终极指南:如何在Anki中轻松添加AI语音学习助手
  • AssetStudio技术指南:从资源解析到流程自动化的进阶之路
  • Qwen-Ranker Pro入门必看:Query+Document深度比对实操指南
  • 预售易货实操拆解:中小商家轻成本拓客,合规落地不踩坑
  • Topit:3步实现macOS窗口高效置顶,告别遮挡烦恼
  • AI编程终端三剑客实战指南:Claude Code、Codex CLI、Gemini CLI 场景化选型与避坑