- 博客(119)
- 收藏
- 关注
原创 【LeetCode - 每日1题】 酿造药水需要的最少总时间问题
本文探讨了流水线调度问题,要求计算n个巫师依次处理m个药水的最短总时间。每个巫师处理药水的时间为skill[i]mana[j],且药水必须立即传递。通过动态维护last_finish_time数组,实现正向累计和反向推导时间,确保药水传递无等待。代码时间复杂度O(nm),空间复杂度O(n),已通过示例验证。本文适用于需顺序处理且工作站同步的流水线调度场景。 (字数:147)
2025-10-10 00:15:00
994
原创 【Python进阶】Python爬虫-Scrapy
本文介绍了Scrapy爬虫框架的基本使用,包括项目结构、简单爬虫编写和配置优化。主要内容包括:1)通过scrapy startproject创建项目结构;2)使用scrapy genspider生成爬虫模板;3)修改settings.py配置反爬措施(USER_AGENT、DOWNLOAD_DELAY等);4)以豆瓣电影Top250为例,演示如何编写爬虫并设置请求头。文章强调需遵守robots.txt规则,合理设置请求间隔以避免被封禁,适合Python和网络安全初学者快速入门Scrapy框架。
2025-10-09 10:48:35
2041
原创 【Python进阶】Python爬虫-Selenium
【摘要】本文介绍了Selenium自动化测试工具的基本安装与使用方法。首先详细说明了如何通过pip安装Selenium库(当前版本4.36.0),并推荐手动下载浏览器驱动(如ChromeDriver、GeckoDriver等)。文章重点讲解了Selenium 4的新特性,包括自动检测浏览器版本功能,同时提供了手动指定驱动路径的代码示例。在基本用法部分,展示了如何初始化WebDriver、打开网页、通过多种定位方式(ID/类名/标签名)查找页面元素,以及模拟用户输入操作。最后给出了完整的Selenium操作实
2025-10-09 00:15:00
1835
原创 【LeetCode - 每日1题】咒语和药水的成功对数问题
本文介绍了一种高效解决咒语与药水成功组合计数问题的算法。题目要求计算每个咒语与药水乘积大于等于给定阈值success的组合数。作者通过排序药水数组后使用二分查找优化,将时间复杂度从O(n×m)降至O((m+n)logm)。关键技巧是使用整数运算(success+spell-1)//spell精确计算目标值,避免浮点精度问题。代码实现简洁高效,通过了多个测试用例验证,包括边缘情况处理。该算法适用于大规模数据处理,是优化查找类问题的经典方法,体现了排序与二分查找的实际应用价值。
2025-10-08 10:26:52
1094
原创 【Python进阶】Python爬虫-BeautifulSoup
本文介绍了Python爬虫中的BeautifulSoup库,包括安装、基本用法和常见操作。主要内容涵盖: 安装:使用pip install beautifulsoup4安装,推荐搭配lxml解析器提升解析速度。 基本流程:通过requests获取网页内容后,用BeautifulSoup解析HTML,示例展示了如何提取网页标题。 中文编码:解决乱码问题,建议设置response.encoding='utf-8'或使用chardet自动检测编码。 标签操作: find()和find_all()查找标签 get_
2025-10-08 00:15:00
2355
原创 【LeetCode - 每日1题】避免洪水泛滥问题
本文提出了一种贪心算法来解决湖泊洪水问题,通过记录湖泊上次下雨日期并在后续晴天中优先抽干可能引发洪水的湖泊。算法使用有序集合管理晴天日期,确保高效查找和操作。文章详细介绍了问题分析、核心思路、代码实现及复杂度分析,并通过多个测试用例验证了算法的正确性。该方法在O(n log n)时间复杂度和O(n)空间复杂度下有效避免洪水发生,适用于大规模数据场景。
2025-10-07 09:47:59
846
原创 【Python进阶】别再写嵌套for循环了!Python自带的itertools,小白也能10分钟学会
你是不是也写过这样的代码?想合并3个列表,手动写list1 + list2 + list3,结果中间漏了一个;想生成“颜色+尺寸”的所有搭配(红S、红M、蓝S…),写了两层for循环,嵌套得像绕迷宫;想给列表元素加序号,又要定义i=0,再写i +=1,代码又长又丑。其实Python早就自带了一个“循环救星”——itertools模块,不用装,拿过来就能用,能把嵌套循环、手动排序、合并列表这些麻烦事,一行代码搞定。今天就用最白话的方式,带小白和技术渣吃透它最常用的8个功能,学完就能用!
2025-10-07 00:15:00
722
原创 【LeetCode - 每日1题】水位上升的泳池中游泳问题
本文探讨了如何在一个n×n的网格中找到从起点(0,0)到终点(n-1,n-1)的最少游泳时间,其中时间t表示水位高度,只能在相邻平台被淹没时移动。文章提出了一种基于Dijkstra算法变种的解决方案,使用优先队列优先处理水位最低的路径,确保路径中的最大高度最小化。代码分析展示了算法的时间复杂度为O(n² log n),空间复杂度为O(n²)。通过多个测试案例验证了算法的正确性,包括单节点网格和陡峭路径等边缘情况。总结指出该算法适用于路径代价由最大权重决定的最优化问题,并鼓励读者共同进步。
2025-10-06 11:00:37
1190
原创 【LeetCode - 每日1题】太平洋大西洋水流问题
题目要求找出能同时流向太平洋和大西洋的岛屿网格坐标。通过逆向思维,从海洋边界出发进行多源BFS,标记逆流可达的点。核心解法包括:1)分别从太平洋(左/上边界)和大西洋(右/下边界)启动BFS;2)使用计数矩阵统计被两次访问的点;3)最终返回能流向两大洋的坐标。代码实现采用虚拟边界点简化处理,时间复杂度O(mn),空间复杂度O(mn)。测试验证了示例及边缘用例,体现了逆向BFS的高效性。(150字)
2025-10-06 00:15:00
905
原创 【Python进阶】网络爬虫核心技能-数据提取
本课程由好学星城(Learning Star City)的Harry老师主讲,系统性地讲解了网络爬虫开发中至关重要的一环——提取数据。
2025-10-05 00:30:00
1023
原创 【LeetCode - 每日1题】盛最多水的容器
本文介绍了使用双指针法高效解决"盛最多水的容器"问题。题目要求在给定高度数组中找到两条垂线,使它们与x轴构成的容器能容纳最多的水。通过初始化左右指针并计算当前面积,每次移动较小高度的指针,逐步逼近最大容量解。该方法时间复杂度为O(n),空间复杂度O(1)。文章包含问题分析、代码实现、复杂度分析及测试用例验证,适用于编程竞赛和算法学习参考。
2025-10-05 00:15:00
746
原创 【Python进阶】网络爬虫核心技能-第三方IP服务
本课程由好学星城(Learning Star City)的Harry老师主讲,系统性地讲解了网络爬虫开发中至关重要的一环——第三方IP服务。当在爬某个网站的时候,如果对目标网站发送了大量的请求,导致对方将我们电脑的公网ip封锁了,此时我们再次发送请求就无法再获取到数据。类别核心要点具体内容应用场景基础概念第三方IP服务作用隐藏真实IP,解决访问限制问题所有网络爬虫项目第三方IP服务分类透明第三方IP服务、匿名第三方IP服务、高匿第三方IP服务根据匿名需求选择工作原理。
2025-10-04 11:22:44
1410
原创 【Python进阶】网络爬虫核心技能——携带cookies(模拟登录和会话状态保存)
本文系统讲解了网络爬虫开发中的Cookie和Session技术。主要内容包括:1)Cookie的定义、功能和工作原理;2)在爬虫中携带Cookie的两种方式;3)使用Session对象简化会话管理。文章还扩展了Cookie属性、Cookie池构建等高级内容,并通过笔趣阁登录案例演示实践应用。这些技术是爬虫处理身份认证的关键,从基础Session使用到高级Cookie池调度,为不同规模的爬虫项目提供了解决方案指南。
2025-10-04 00:30:00
1692
原创 【LeetCode - 每日1题】接雨水问题2
文章介绍了如何计算二维高度图中能接的雨水量。解题思路基于木桶原理,从边界最低点开始向内推进,利用最小堆动态获取当前最低水位点,计算相邻位置的蓄水量。代码实现包括初始化边界点、水位扩散和动态更新过程,时间复杂度为O(mnlog(mn)),空间复杂度为O(mn)。通过两个测试用例验证了算法的正确性,示例1输出4,示例2输出10。
2025-10-04 00:15:00
887
原创 【LeetCode - 每日1题】接雨水问题1
本文介绍了使用双指针法解决接雨水问题的高效算法。给定表示柱子高度的非负整数数组,该算法通过左右指针向中间遍历,动态更新左右最大高度并计算每个位置的雨水量。时间复杂度为O(n),空间复杂度O(1),适用于大规模数据。测试用例验证了算法的正确性,包括常规和边缘情况。文章还提供了Python代码实现和详细分析,强调了双指针移动策略的核心思想。最后对算法优势和应用场景进行了总结,并附上参考文档链接。
2025-10-03 08:53:50
674
原创 【Python进阶】网络爬虫核心技能——请求参数
课程系统讲解了网络爬虫开发中请求参数的识别与处理技术,涵盖查询字符串、翻页策略、表单参数和JSON参数四种核心方法。重点演示了如何通过浏览器开发者工具分析参数规律,并给出Python代码实现示例。文章强调工具使用和参数分析的重要性,建议优先模拟API请求而非模拟浏览器操作,同时保持会话状态。课程内容由浅入深,为构建高效爬虫项目提供完整知识体系,适合网络安全和Python开发者学习参考。(149字)
2025-10-03 00:30:00
1879
原创 【Python进阶】网络爬虫技术概述
本文介绍了Python爬虫的基本概念、技术流程及法律风险。爬虫通过模拟浏览器行为自动获取网页数据,核心步骤包括发送请求、解析内容和存储数据。文章分析了爬虫的高效性与灵活性优势,同时指出技术门槛高、法律风险等缺点。详细讲解了HTTP/HTTPS协议、URL结构、Requests库使用等关键技术,并强调遵守Robots协议和隐私保护的重要性。最后提供了反爬策略建议,如使用User-Agent池等技巧,并呼吁读者在合法合规前提下合理使用爬虫技术。
2025-10-03 00:15:00
1266
原创 【系统重装】Windows无法安装到这个磁盘提示选中的磁盘具有MBR分区表解决方法(亲测有效)
【摘要】本文针对Win10安装过程中出现的"MBR分区表无法在EFI系统安装"问题,提供了五种解决方案:1)删除U盘EFI引导文件强制MBR启动;2)选择非UEFI模式启动;3)禁用BIOS中的UEFI设置;4)使用DiskGenius创建GPT分区;5)重点推荐的Diskpart命令法(Shift+F10调出命令行,通过clean和convert mbr命令转换分区格式)。文章还解释了EFI新技术将取代传统BIOS的趋势,并附有详细操作图示。文末鼓励读者互动交流,共同提升技术能力。
2025-10-02 15:00:56
2045
原创 【电脑重装系统】电脑重装系统-利用PE系统盘安装
摘要:重装系统全攻略 本文详细介绍了重装Windows系统的完整流程和注意事项。主要内容包括:1)使用微PE工具箱制作PE系统盘,重点讲解了U盘格式选择(推荐exFAT);2)下载Windows镜像文件的注意事项;3)设置U盘启动的两种方法(快捷键或BIOS设置);4)重装系统的8大好处,如清除病毒、提升性能等。文章特别强调数据备份的重要性,并提供了各品牌电脑进入BIOS的热键参考。整个重装过程约需1小时,完成后需安装驱动和常用软件,最终可获得一个干净流畅的新系统。
2025-10-02 11:14:38
1194
原创 【LeetCode - 每日1题】换水问题1
本文探讨了如何通过空水瓶兑换机制最大化喝水数量的问题。给定初始水瓶数numBottles和兑换比例numExchange,采用循环兑换策略:每次喝光当前水瓶,用空瓶兑换新水,直到空瓶不足。代码通过整除和取模操作高效计算兑换次数,时间复杂度为O(log numBottles)。测试用例验证了算法正确性,包括边缘情况(如无法兑换或恰好兑换完)。关键点在于动态更新剩余空瓶数(兑换余数+新空瓶),适用于小规模数据约束。最后鼓励读者参与优化讨论,扩展至更复杂场景如动态规划解法。
2025-10-02 09:53:12
847
原创 【LeetCode - 每日1题】换水问题2
题目要求计算在特定规则下最多能喝到的水瓶数量,规则包括喝掉满瓶转为空瓶,以及用空瓶按递增交换比率换取满瓶。通过模拟交换过程,每次循环消耗当前比率空瓶兑换1瓶水并提升交换比率,累计喝水数量。代码实现简洁高效,时间复杂度为O(sqrt(n)),完美处理边界情况。示例验证表明算法正确性,如输入(13,6)输出15,(10,3)输出13。该方法通过数学模拟最大化喝水数量,适用于类似资源兑换问题。
2025-10-02 09:24:13
768
原创 【LeetCode - 每日1题】计算三角形最小路径和
本文介绍了如何用动态规划解决三角形最小路径和问题。通过自底向上逐层计算,使用一维数组存储中间状态,将空间复杂度优化至O(n)。关键点包括:初始化数组存储顶点值,按最右侧、中间(逆序)和最左侧节点三类处理状态转移,最后取末行最小值。代码实现简洁,时间复杂度O(n²),适用于类似杨辉三角的结构问题。测试用例验证了常规、单行和边缘情况,确保算法正确性。该方法通过状态压缩和逆序更新有效避免了覆盖历史状态,是处理这类路径优化问题的经典解法。
2025-09-25 22:22:50
976
原创 【LeetCode - 每日1题】分数转小数的循环节处理
本文介绍了将分数转换为小数字符串的方法,重点处理循环小数的情况。通过模拟除法运算,使用哈希表记录余数位置来检测循环节,并在循环部分添加括号。核心步骤包括符号处理、整数部分计算和小数部分循环检测。代码实现采用Python,时间复杂度为O(Logn),空间复杂度O(Logn)。测试用例验证了整数、有限小数和循环小数的处理,覆盖了正负数和大数等边界情况。该方法高效可靠,适用于各类分数转换场景。
2025-09-24 08:36:41
645
原创 【LeetCode - 每日1题】比较版本号
本文解析了如何比较两个版本号字符串(如"1.2"和"1.10")。核心思路是将版本号按点分割后逐级比较,忽略前导零,缺失部分补0。通过Python的zip_longest实现不等长处理,时间复杂度O(n+m)。测试验证了不同场景下的正确性,包括前导零处理、长度差异等。该方法高效简洁,适合处理标准版本号比较需求。文末还提供了完整代码实现和复杂度分析。
2025-09-24 07:49:16
681
原创 【LeetCode - 每日1题】最大频率元素计数
这篇文章介绍了如何计算数组中所有具有最大频率元素的频率之和。作者提出了一种高效的一次遍历解法,使用字典动态维护元素频率,实时更新最大频率和结果。代码实现简洁,时间复杂度O(n),空间复杂度O(n)。文章包含详细的问题分析、核心思路、代码解释、复杂度分析和多个测试用例验证,适合编程初学者和算法爱好者学习。
2025-09-23 17:06:37
890
原创 【LeetCode - 每日1题】设计电影租借系统
本文实现了一个高效电影租借系统,支持搜索、租借、归还和报告功能。系统采用SortedList维护未借出/已借出电影的有序集合,确保关键操作(搜索、租借、归还、报告)的时间复杂度均为O(log n)。通过三个核心数据结构:t_price字典存储价格信息,t_valid字典维护未借出电影,t_rent有序列表跟踪已借出电影,实现了在超大规模数据(3×10⁵商店和10⁵次操作)下的高效处理。该方案满足题目要求,能够快速返回最便宜的5个结果,并通过示例验证了正确性。
2025-09-21 17:08:10
1301
原创 【LeetCode - 每日1题】设计路由器
本文设计了一个高效管理网络路由器数据包的数据结构,支持添加、转发和查询操作。核心实现包括:使用队列实现FIFO管理,集合去重,字典维护目标地址时间戳。添加数据包时检查重复并在内存满时移除最旧包(O(1)均摊);转发操作直接取队首元素(O(1));范围查询通过二分查找实现高效计数(O(log n))。该方案在保证功能完整性的同时,优化了时间与空间效率,适用于高频调用的网络环境。
2025-09-20 15:00:03
1144
原创 【LeetCode - 每日1题】设计电子表格
实现一个电子表格类,支持设置单元格值、重置单元格值以及解析简单加法公式(格式为 =X+Y)。核心是通过字典存储非零单元格,未设置的单元格默认为0。利用字典高效存储非零单元格,节省空间。公式解析简洁,直接按 +分割并判断类型,符合题目要求。未显式验证单元格引用是否在有效范围内(如行号≤rows),但题目保证输入合法。依赖字典的灵活性处理默认值0,避免预初始化所有单元格。
2025-09-20 10:39:15
1003
原创 【LeetCode - 每日1题】设计任务管理器
本文设计了一个高效的任务管理器系统,支持任务增删改查及执行最高优先级任务。系统采用懒删除+最大堆策略,堆元素存储(-priority,-taskId,userId),利用哈希表维护最新状态。时间复杂度分析显示各操作高效,测试用例验证了正确性。核心思路是延迟处理修改/删除,在execTop时过滤无效记录,确保性能最优。
2025-09-18 10:56:22
818
原创 【LeetCode - 每日1题】设计数字容器系统
本文设计了一个数字容器系统,支持在指定下标插入/替换数字并查询数字的最小下标。采用字典存储下标与数字的映射,并为每个数字维护最小堆存储所有出现过的下标,通过惰性删除策略在查询时清理无效下标。change操作时间复杂度为O(log k),find操作均摊O(m log k),空间复杂度O(n)。该方案利用最小堆和惰性删除高效平衡了更新与查询性能,适用于总操作次数有限的场景,完美满足题目要求。代码实现简洁,包含测试用例验证正确性。
2025-09-18 10:10:26
991
原创 【LeetCode - 每日1题】替换数组中的非互质数
本文介绍了一个数组处理算法,通过不断合并相邻非互质数为它们的最小公倍数来简化数组。关键点在于使用栈结构实现高效处理,保证每次合并后立即检查是否触发新的合并。算法时间复杂度为O(nlogU),空间复杂度O(n)。测试用例验证了算法的正确性,包括示例数据和边缘情况。文章还提供了Python实现代码和详细步骤解析,并总结了这种贪心策略的优势。适用于需要处理数组相邻元素关系的场景,如数字化简等问题。
2025-09-18 09:15:29
950
原创 【LeetCode - 每日1题】可以输入的最大单词数
本文介绍了如何计算在键盘部分字母键损坏的情况下能完整输入的单词数量。通过将输入字符串分割为单词列表,并检查每个单词的所有字母是否都不在损坏字母集合中,统计可输入的单词数。算法时间复杂度为O(n×m),空间复杂度O(n),适用于各种边缘情况,如空坏键或全坏键。代码简洁高效,建议优化时可考虑将坏键字符串转为集合提升查找效率。测试用例验证了算法正确性,包括正常和边界情况。
2025-09-15 16:17:14
741
原创 【LeetCode - 每日1题】元音拼写检查器
本文实现了一个智能拼写检查器,能处理大小写错误和元音错误两种拼写问题。通过预处理构建三种哈希映射(完全匹配、小写形式匹配、元音通配形式匹配),实现O(1)查询效率。系统按照完全匹配>大小写匹配>元音模糊匹配的优先级返回结果,保证准确性。测试表明,该方案能正确处理各种边界情况,如全大写单词、元音多种替换等。算法时间复杂度为O(N+M),空间复杂度O(N),适合大规模数据处理。
2025-09-14 17:09:21
1390
原创 【LeetCode - 每日1题】找到出现频率最高的元音和辅音
题目要求找出字符串中出现频率最高的元音字母和辅音字母,并返回两者频率之和。解题思路是使用数组统计字母频率,动态更新元音和辅音的最大频次。代码通过一次遍历完成统计,时间复杂度为O(n)。测试用例验证了不同场景下的正确性,包括无元音/辅音的情况。该方法高效简洁,利用了数组索引和动态比较,适用于小写字母字符串处理。
2025-09-13 09:10:18
1215
原创 【LeetCode - 每日1题】字符串元音游戏
摘要: 本文探讨了一个字符串元音博弈问题,两名玩家(小红和小明)轮流移除包含奇/偶元音数的子串,无法操作者输。通过分析得出:只要字符串中存在元音,小红必能通过最优策略获胜;反之则输。解题关键在于统计元音存在性,而非具体数量。代码用any()函数高效判断(O(n)时间复杂度),并通过示例验证了逻辑正确性。边缘用例(如全辅音、单字符)进一步佐证结论。全文结合博弈论与Python实现,突出“存在性决定胜负”的核心思想,为类似问题提供简洁解决范式。
2025-09-12 08:35:04
936
原创 【LeetCode - 每日1题】将字符串中的元音字母排序
本文介绍了一道关于字符串重排的编程题,要求将字符串中的元音字母按ASCII值升序排列,同时保持辅音字母位置不变。解题思路包括:使用位掩码技巧高效识别元音(0x208222掩码)、提取并排序元音字母、重构字符串保留辅音位置。代码实现采用Python的filter和sorted函数处理元音,通过遍历完成字符串重构。复杂度分析为O(nlogn)时间与O(n)空间,并通过示例验证了算法正确性。文章还讨论了位掩码原理和大小写混合处理等细节,最后附有鼓励读者互动的结束语。
2025-09-11 14:07:41
1031
原创 【LeetCode - 每日1题】求m人社交网络好友沟通最小教学人数
【摘要】 本文探讨了社交网络中通过语言教学实现好友沟通的最小化策略。给定用户语言掌握情况和好友关系,需选择一门语言教学,使所有好友对能相互沟通。解题核心是贪心算法:先识别无法沟通的好友对集合,统计其中用户的语言掌握情况,选择最多人已掌握的语言进行教学,最小化教学人数(总人数-最大掌握数)。代码通过集合存储待处理用户,语言计数器优化计算,时间复杂度O(f×L+m×L)。测试验证了算法正确性,包括示例和边缘案例。该方案适用于社交网络优化等资源分配场景,通过高效统计和贪心选择实现最优解。
2025-09-11 10:45:55
1164
原创 【LeetCode - 每日1题】求第n天后知道秘密的人数
摘要:本文探讨社交网络中如何通过教授一门语言使所有好友能相互沟通的最优解。题目给定用户掌握的语言集合和好友关系,要求选择一门语言并教授最少用户数,使得每对好友至少共享一门语言。解题思路聚焦于分析每对好友的语言交集,通过统计语言覆盖情况确定最优教授方案。代码实现采用集合运算和贪心策略,时间复杂度为O(m*n),其中m为用户数,n为语言数。测试用例验证了算法的正确性,包括基础情况和边界条件。文章最后鼓励读者持续学习,共同进步。
2025-09-10 15:52:25
637
原创 【LeetCode - 每日1题】将整数转换为两个无零整数的和
本文介绍了一种解决「无零整数」问题的随机算法。给定正整数n,要求找到两个不含数字'0'的整数a和b,使得a+b=n。算法通过随机生成候选值a,检查a和b=n-a是否满足无零条件,直到找到有效解。时间复杂度平均O(1),空间复杂度O(1)。测试用例验证了算法在n=2、11、10000等不同场景下的正确性。该方法简洁高效,适用于n较小且无零整数比例高的场景。文章还提供了完整Python实现代码和复杂度分析。
2025-09-08 15:39:57
773
原创 【正则表达式】 正则表达式-汇总笔记
本文介绍了正则表达式的基础知识和应用场景。文章首先概述了正则表达式的定义和用途,包括查找、替换、验证和提取文本数据等功能。随后通过一个JavaScript实例演示了如何从字符串中提取数字。文章详细讲解了正则表达式的各种模式元素,如字面值字符、特殊字符、字符类、元字符、量词和边界符号等。最后提供了丰富的学习资源链接,包括教程文档、在线工具和测试平台,并邀请读者互动交流。全文内容实用,适合初学者快速了解正则表达式的基本概念和应用方法。
2025-09-08 00:15:00
1138
Rust编程语言学习资源大全:官方文档+实践教程+免费课程(自学指南)
2025-08-20
【Python开发环境搭建】Python和PyCharm安装配置指南:从环境准备到插件扩展详细步骤说明
2025-08-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅