自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(172)
  • 收藏
  • 关注

原创 多维动态规划题解——最长公共子序列【LeetCode】空间优化:两个数组(滚动数组)

基础解法请参考之前的一篇文章:多维动态规划题解——最长公共子序列【LeetCode】记忆化搜索&&翻译成递推-CSDN博客下面我们详细讲讲如何进行空间优化的,具体的优化技巧是什么

2025-07-17 19:56:21 175

原创 多维动态规划题解——最长公共子序列【LeetCode】记忆化搜索&&翻译成递推

定义dfs(i, j)在和中的最长公共子序列的长度。维度内容✅ 思路逻辑定义 dfs(i, j):text1[0..i] 与 text2[0..j] 的 LCS 长度✅ 状态转移相等则 +1,否者取左/上两种子问题最大值✅ 技巧递归 + 记忆化(Top-down DP)✅ 时间复杂度O(n * m)✅ 空间复杂度O(n * m)定义二维数组ff[i][j]表示与的最长公共子序列长度。注意这里的偏移:我们实际比较的是字符串的前i和前j个字符,但f。

2025-07-17 19:45:36 698

原创 接口测试概述【接口测试】

接口测试的核心目的,就是根据接口的技术文档或协议说明,设计测试用例并使用工具直接向接口发送请求,再验证返回的响应是否符合预期。虽然测试多数面向服务端,但在某些场景下客户端也可以成为被测对象,关键在于你要验证的是哪一方的逻辑与响应。目前,大部分接口交互基于 HTTP 协议:客户端发起请求,服务器返回响应。这种结构使得 API 测试很像调用某种“远程函数”,因此也被形象地称作 Web API 测试。

2025-07-17 10:24:04 820

原创 关于接口测试的HTTP基础【接口测试】

接口测试中最常用的通讯协议就是 HTTP(Hypertext Transfer Protocol),本节旨在帮助理解 HTTP 协议的结构、工作流程以及如何用于接口测试。

2025-07-17 10:18:43 401

原创 动态规划题解——分割等和子集【LeetCode】

我们目标是找到一个子集,使得其和为。dfs(i, j) 表示:是否可以从 nums[0..i] 中选出一些数,使得它们的和为 j维度内容✅ 思路逻辑转化为是否可以从数组中选出若干数,使它们的和为总和的一半✅ 核心技巧记忆化搜索 + 状态定义dfs(i, j)✅ 时间复杂度O(n × s//2),即 O(n × sum/2)✅ 空间复杂度O(n × sum/2),包括递归栈和缓存。

2025-07-17 00:04:11 376

原创 动态规划题解_打家劫舍【LeetCode】

f0表示「不偷当前这家时的最大收益」;f1表示「偷当前这家时的最大收益」。随着遍历每一间房,我们动态更新这两个变量。维度内容✅ 思路逻辑每间房子选择“偷”或“不偷”,根据前一个状态递推最大金额✅ 核心技巧动态规划 + 状态滚动优化(用 f0, f1 代替 dp 数组)✅ 时间复杂度O(n)✅ 空间复杂度O(1)

2025-07-16 23:09:25 991

原创 多维动态规划题解——最小路径和【LeetCode】空间优化一维数组

✅ 核心思想:二维动态规划的空间优化每个格子只依赖它左边和上边的状态,因此一行一行滚动更新就足够;使用一维数组 f 来记录当前行的最小路径和,循环内覆盖更新;边界偏移技巧使得代码无需特判第一行第一列。

2025-07-16 20:42:59 198

原创 多维动态规划题解——最小路径和【LeetCode】记忆化搜索&&翻译为递推写法

❓ 问题描述:给定一个 m x n 的网格 grid,每个格子有一个非负整数,表示从左上角 (0,0) 走到右下角 (m-1,n-1) 的路径,求路径上的最小路径和(只能向右或向下走)。

2025-07-16 20:38:39 804

原创 多维动态规划题解——不同路径【LeetCode】递推写法&空间优化

给定一个大小为m x n从左上角走到右下角,有多少条不同的路径?使用一维数组f[j]表示当前行中,到达第j列所需要的路径数量;为什么一维就够?因为第i行的路径数只依赖于上一行和当前行左侧的位置。维度内容✅ 思路逻辑一维数组压缩的 DP,每个位置累加来自左侧和上方的路径数✅ 核心技巧滚动数组优化空间;偏移 1 位避免边界判断;内层循环从左到右确保顺序正确✅ 时间复杂度O(m × n)✅ 空间复杂度O(n)

2025-07-16 20:16:17 321

原创 多维动态规划题解——不同路径【LeetCode】记忆化搜索

dfs(i, j) 表示从 (0, 0) 到达 (i, j) 的路径数维度内容✅ 思路逻辑每个格子只能从上或左来,递归地组合路径数✅ 核心技巧DFS 建模 + 记忆化;基础的二维路径 DP 问题✅ 时间复杂度O(m × n),每个状态只算一次✅ 空间复杂度O(m × n),缓存 + 递归栈深度。

2025-07-16 19:59:21 250

原创 更灵活方便的初始化、清除方法——fixture【pytest】

在前面介绍的 unittest 风格初始化与清除机制中,我们主要使用 setup_* 与 teardown_* 方法对资源进行前后处理。而 pytest 提供了更加灵活、声明式的替代方案 —— fixture,使得测试代码更加模块化、可复用。

2025-07-16 10:07:52 966

原创 pytest 实战演练【pytest】

转载自白月黑羽,,仅作学习笔记用途,侵权联系删除。

2025-07-16 10:04:57 669

原创 pytest中挑选用例执行【pytest】

自定义标签在运行时,pytest 可能会抛出警告提示标签未注册。参数用于模糊匹配用例名、类名、模块名或目录名等,只要包含指定关键词即可被选中。🔍 注意:关键词匹配是区分大小写的,并且不要求完全匹配,只需部分匹配成功即可。在实际自动化测试过程中,我们常常并不需要每次都执行所有测试用例,而是希望根据。通过这种方式,pytest 会正式识别这些标签,执行时不再提示警告信息。你还可以为整个模块统一设置标签,通过定义模块级变量。等条件,灵活挑选要运行的部分用例。上述命令会运行所有名称中包含。执行整个目录中的测试。

2025-07-16 09:38:08 569

原创 pytest初始化清除【pytest】

在自动化测试中,初始化与清理操作(setup/teardown)扮演着至关重要的角色,能够为测试环境的复用、资源的回收和测试隔离提供基础保障。pytest 支持多种粒度的初始化与清除:模块级、类级、方法级以及目录级(通过 fixture 实现)

2025-07-15 10:46:12 843

原创 pytest快速上手指南【pytest】

在基于 Python 的自动化测试领域,最常见的三大测试框架包括:unittestpytestrobotframework

2025-07-15 10:43:21 577

原创 动态规划题解——乘积最大子数组【LeetCode】

维度内容✅ 思路逻辑遍历数组时维护以当前位置结尾的最大/最小乘积,更新全局最大值✅ 核心技巧负数会导致最大最小翻转,必须同时维护最大值和最小值✅ 时间复杂度O(n) 一次遍历✅ 空间复杂度O(1) 使用常数变量优化。

2025-07-14 20:56:34 337

原创 动态规划题解——最长递增子序列【LeetCode】记忆化搜索方法

dfs(i) 表示:以 nums[i] 为结尾的最长递增子序列的长度维度内容✅ 思路逻辑每个位置向前查找比它小的数,递归求以该位置为结尾的 LIS 长度✅ 核心技巧转化为“以 i 结尾”的子问题;记忆化避免重复递归✅ 时间复杂度O(n²),两层循环(递归 + 遍历前缀)✅ 空间复杂度O(n),记忆表和递归栈大小。

2025-07-14 20:38:31 483

原创 动态规划题解——单词拆分【LeetCode】

使用递归函数dfs(i)s[:i]是否可以合法拆分。dfs(5)表示s[0:5]能否由字典中的单词拼出。维度内容✅ 思路逻辑从后向前切割字符串,判断是否可以用字典中单词组成✅ 核心技巧DFS + 记忆化搜索;利用 max_len 限制枚举范围,提高效率✅ 时间复杂度O(n × L),n 是字符串长度,L 是最长单词长度✅ 空间复杂度O(n),递归栈和缓存。

2025-07-14 20:26:19 271

原创 动态规划题解_将一个数字表示成幂的和的方案数【LeetCode】

定义f[s]表示和为s的组合数目;f[0] = 1,表示选法为空时和为 0 的唯一方案。维度内容✅ 思路逻辑将问题转换为组合数问题,用 0/1 背包方式动态转移✅ 核心技巧每个数最多用一次(倒序遍历);幂次作为体积;经典 f[s] += f[s - v] 模型✅ 时间复杂度O(√n × n) 最多枚举 √n 个底数,每次遍历 n 个状态✅ 空间复杂度O(n) 一维 DP 数组步骤内容初始化f[0] = 1和为 0 有 1 种方式(空集)枚举i = 1...n。

2025-07-13 20:07:31 703

原创 动态规划题解_零钱兑换【LeetCode】

✅ 核心思想:完全背包的二维动态规划 + 空间优化本质是完全背包问题(每个物品可以选多次);将状态定义为“前 i 个硬币构成 c 的最小硬币数”;使用滚动数组优化空间,把 O(n × amount) 降为 O(2 × amount)。

2025-07-13 20:02:31 898

原创 动态规划题解_打家劫舍【LeetCode】

这个问题的核心思想是动态规划。我们可以将问题分解为子问题:对于每个房子 i,我们有两种选择:偷或不偷。如果我们偷了第 i 个房子,那么我们不能偷第 i-1 个房子,所以最大金额是 dfs(i - 2) + nums[i]。如果我们不偷第 i 个房子,那么最大金额是 dfs(i - 1)。我们取这两种选择中的最大值作为 dfs(i) 的结果。

2025-07-13 14:29:36 410

原创 动态规划题解_杨辉三角【LeetCode】

✅ 核心思想:利用杨辉三角的递推性质构造二维数组每一项的值等于其上一行相邻两项之和;初始化为全 1 是为了保留两边边界值;只需填补中间项,逻辑清晰、空间节省。

2025-07-13 14:24:13 396

原创 Python 中 enumerate(s) 和 range() 的对比

如果你在遍历一个字符串、列表等时,同时需要索引和元素 —— 用 enumerate() 更简洁、优雅;如果你只是基于索引操作(如双指针、窗口处理) —— range() 会更通用。

2025-07-12 20:47:30 240

原创 贪心算法题解——划分字母区间【LeetCode】

维度内容✅ 思路逻辑利用每个字符最后出现位置,动态维护区间右边界,贪心切片✅ 核心技巧贪心:延迟切片直到当前片段中所有字母的最后出现位置都包含为止✅ 时间复杂度O(n),两次遍历字符串✅ 空间复杂度O(1),字母表大小固定,最多用 26 个键值对。

2025-07-12 20:39:22 399

原创 贪心算法题解——跳跃游戏 II【LeetCode】

维度内容✅ 思路逻辑每次跳跃更新当前最远能到达的位置,到达边界后跳一次✅ 核心技巧贪心模拟 BFS 层级遍历,按“跳跃区间”更新跳数✅ 时间复杂度O(n)✅ 空间复杂度O(1)

2025-07-12 20:30:21 353

原创 贪心算法题解——跳跃游戏【LeetCode】

维度内容✅ 思路逻辑从左向右遍历,维护最远可达位置,遇到不可达立即返回 False✅ 核心技巧贪心更新最远跳跃索引,判断当前位置是否可达,提早终止✅ 时间复杂度O(n)✅ 空间复杂度O(1)

2025-07-12 19:55:03 463

原创 贪心算法题解——买卖股票的最佳时机【LeetCode】

维度内容✅ 思路逻辑一次遍历中同时更新最小价格和最大利润✅ 核心技巧差值最大 = 当前价格 - 历史最小;动态维护最小值 + 一次扫描✅ 时间复杂度O(n)✅ 空间复杂度O(1)

2025-07-12 17:53:32 281

原创 栈题解——最小栈【LeetCode】

维度说明✅ 思路逻辑每个入栈元素都记录当前最小值✅ 核心技巧元素与当前最小值打包记录,空间换时间✅ 时间复杂度所有操作均为 O(1)✅ 空间复杂度O(n),每个入栈值都额外记录一个最小值如需我用图示说明这段栈在操作过程中的状态变化,也可以继续补充!

2025-07-12 14:35:21 743

原创 XPath 语法【Web 自动化-定位方法】

XPath(XML Path Language)是用于在 XML/HTML 文档中定位节点的语言,由 W3C 标准定义。浏览器支持的是XPath 1.0。应用场景广泛:用于SeleniumScrapy 爬虫Appium 移动自动化等。

2025-07-11 11:21:23 458

原创 Selenium 自动化实战技巧【selenium】

这就是 Selenium 在常见交互行为、弹窗处理、浏览器控制、上传文件、移动端模拟等方面的进阶用法整理。📌 如果上传控件不是标准的 file input,而是弹出系统窗口,可以借助 Windows 平台的。某些浮动菜单或弹窗,在鼠标移出时会立即消失,不方便抓取元素信息。在 5 秒内将鼠标悬停目标区域,随后浏览器将冻结当前界面,便于检查 HTML 结构。Selenium 支持直接执行 JS 脚本,用于获取 DOM 属性或处理页面行为。❗提示:非 JS 弹窗(HTML 构建)需用正常元素选择器处理。

2025-07-11 11:18:23 376

原创 Selenium 操作表单选择控件【selenium】

Radio 按钮是网页表单中常见的控件之一,用于从多个选项中选择一个。Selenium 中可以使用。📌 提醒:Checkbox 一次点击会切换选中状态,操作前最好确认当前状态。以上就是 Selenium 中对表单元素进行自动化操作的常见方法和注意点。多选框需要在选择前清空已有的选中项,否则可能出现冲突。是 CSS 的伪类选择器,可用于获取已被选中的。Checkbox 与单选框不同,它允许多选。即便有其他项已被选中,也会自动替换,无需手动清除。类来操作这类控件,支持单选或多选。多选,避免重复点击取消选择。

2025-07-11 11:07:22 941

原创 frame 与新窗口切换操作【selenium 】

iframe操作前记得用切换上下文操作完成后使用返回主页面新开窗口操作需配合切换句柄保存主窗口句柄是一种更稳定的“回退方案”如你有更多关于 iframe 嵌套、iframe 中的 iframe、或是弹窗窗口处理的具体例子,也欢迎继续提问!我可以帮你写出更实用的模板代码。

2025-07-11 11:02:46 571

原创 栈题解——有效的括号【LeetCode】两种方法

本算法用「栈」精准处理括号匹配问题,利用哈希映射和简洁判断逻辑,在 O(n) 时间 + O(n) 空间下完成合法性判断,是栈结构在语法解析中应用的经典模板。本算法使用「将期望的右括号入栈」的思路,以更直接的方式实现括号匹配,是对传统栈法的简化与优化,时间 O(n)、空间 O(n),写法简洁、逻辑自然,非常推荐掌握这种变体技巧。

2025-07-10 20:38:09 640

原创 二分查找篇——搜索旋转排序数组【LeetCode】一次二分查找

本算法通过构造灵活的 check() 函数,避免显式分段判断,将旋转数组的复杂性“封装”为条件函数内部的逻辑判断,结合偏左二分,实现了 时间复杂度 O(log n)、空间复杂度 O(1) 的简洁高效搜索方案,是 LeetCode 33 题的极优解法之一。

2025-07-10 20:14:53 460

原创 二分查找篇——搜索旋转排序数组【LeetCode】两次二分查找

本解法将旋转数组分段 + 精准定位目标值下标,结合偏左二分与逻辑清晰的 lower_bound 函数,实现了 O(log n) 时间复杂度的优雅搜索,是 LeetCode 33题的标准解法。其中的偏移下标控制和开区间技巧值得深入掌握.

2025-07-10 20:10:54 297

原创 二分查找篇——寻找旋转排序数组中的最小值【LeetCode】

这段算法使用「与末尾元素比较 + 偏左二分」策略,巧妙地定位旋转数组中的最小值,时间复杂度 O(log n),空间复杂度 O(1),逻辑简洁、边界统一,是处理旋转数组查找问题的极佳模板。

2025-07-10 19:44:51 296

原创 关于市场主流自动化测试工具和框架的简要介绍

下面我会分别讲解 Selenium、Appium、Playwright、Cypress 、Postman 等主流自动化框架的区别、联系、适用场景和归属范畴,帮助你更系统地理解它们。

2025-07-10 11:00:52 1043

原创 CSS表达式——下篇【selenium】

组合选择器(比如.a > .b)适用于父子层级结构组选择器(如.x, .y)适合多目标统一操作vs是两个常见但容易混淆的定位工具兄弟选择器和能帮助你按“位置关系”筛选相邻元素这些 CSS 语法在 Selenium 中通过调用,使你可以用一种非常强大、精确的方式控制页面元素定位。

2025-07-10 10:40:50 810

原创 二分查找篇——在排序数组中查找元素的第一个和最后一个位置【LeetCode】

else:left = mid这个函数返回的是第一个大于等于 target 的索引位置。使用的是左闭右开区间的二分写法,可以避免边界处理错误。循环终止时,right就是第一个满足的位置。✅利用两次二分查找精准定位范围使用两次「lower_bound」分别找到起始位置和结束位置,避免了线性扫描,效率高。✅巧妙的“target + 1”技巧不需要额外编写一个 upper_bound 函数,只需将目标值加一,即可复用 lower_bound 找出右边界。✅适合面试高频题型。

2025-07-09 23:21:19 322

原创 CSS表达式——上篇【selenium】

本文章仅作自己学习笔记用途,转载自,侵权联系删除~前面我们看到了根据 id、class属性、tag名 选择元素。如果我们要选择的 元素 没有id、class 属性,或者有些我们不想选择的元素 也有相同的 id、class属性值,怎么办呢?这时候我们通常可以通过语法选择元素。

2025-07-09 10:30:58 716

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除