- 博客(36)
- 收藏
- 关注
原创 [三分钟学算法]分治-快速排序-最小的K个数:设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。
设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。
2025-05-04 21:23:34
654
原创 [三分钟学算法]分治-快速选择算法-数组中的第K个最大元素:给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k
给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。
2025-05-03 23:28:25
430
原创 [三分钟学算法]分治-快速排序算法-排序数组:给你一个整数数组 nums,请你将该数组升序排列。 你必须在 不使用任何内置函数 的情况下解决问题,时间复杂度为 O(nlog(n))
给你一个整数数组 nums,请你将该数组升序排列。你必须在 不使用任何内置函数 的情况下解决问题,时间复杂度为 O(nlog(n)),并且空间复杂度尽可能小。
2025-05-03 22:16:15
384
原创 [三分钟学算法]模拟算法-提莫攻击:在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。 当提莫攻击艾希,艾希的中毒状态正好持续 dura
在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。正式地讲,提莫在 t 发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束。
2025-05-02 22:24:05
395
原创 [三分钟学算法]前缀和-寻找数组的中心下标:给你一个整数数组 nums ,请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。
给你一个整数数组 nums ,请计算数组的 中心下标 。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。
2025-05-02 21:44:12
288
原创 [三分钟学算法]多源BFS-地图分析:你现在手里有一份大小为 n x n 的 网格 grid,上面的每个 单元格 都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地。
你现在手里有一份大小为 n x n 的 网格 grid,上面的每个 单元格 都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地。请你找出一个海洋单元格,这个海洋单元格到离它最近的陆地单元格的距离是最大的,并返回该距离。如果网格上只有陆地或者海洋,请返回 -1。
2025-04-30 23:33:04
322
原创 [三分钟学算法]多源BFS-多源最短路径-01矩阵:给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。
给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。两个相邻元素间的距离为 1 。
2025-04-30 22:50:09
487
原创 [三分钟学算法]优先级队列(堆)-数据流中的第K大元素:设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。
设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。
2025-04-29 23:22:53
354
原创 [三分钟学算法]BFS-最短路径-迷宫中离入口最近的出口:给你一个 m x n 的迷宫矩阵 maze (下标从 0 开始),矩阵中有空格子(用 ‘.‘ 表示)和墙(用 ‘+‘ 表示)。
给你一个 m x n 的迷宫矩阵 maze (下标从 0 开始),矩阵中有空格子(用 '.' 表示)和墙(用 '+' 表示)。同时给你迷宫的入口 entrance ,用 entrance = [entrancerow, entrancecol] 表示你一开始所在格子的行和列。每一步操作,你可以往 上,下,左 或者 右 移动一个格子。你不能进入墙所在的格子,你也不能离开迷宫。你的目标是找到离 entrance 最近 的出口。出口 的含义是 maze 边界 上的 空格子。entrance 格子 不算 出口。
2025-04-29 22:44:28
491
原创 [三分钟学算法]BFS-FloodFill算法-岛屿的最大面积:给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合。1
给你一个大小为 m x n 的二进制矩阵 grid 。岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。岛屿的面积是岛上值为 1 的单元格的数目。计算并返回 grid 中最大的岛屿面积。如果没有岛屿,则返回面积为 0
2025-04-28 23:59:03
368
原创 [三分钟学算法]BFS-FloodFill算法-图像渲染:有一幅以 m x n 的二维整数数组表示的图画 image ,其中 image[i][j] 表示该图画的像素值大小。
有一幅以 m x n 的二维整数数组表示的图画 image ,其中 image[i][j] 表示该图画的像素值大小。你也被给予三个整数 sr , sc 和 color 。你应该从像素 image[sr][sc] 开始对图像进行上色 填充 。
2025-04-27 23:37:02
364
原创 [三分钟学算法]堆-模拟算法-最后一块石头的重量:有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。
有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。
2025-04-26 23:49:12
249
原创 [三分钟学算法]队列-BFS-二叉树的锯齿形层序遍历:给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。
给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。
2025-04-26 23:29:03
351
原创 [三分钟学算法]队列-BFS-N叉树的层序遍历:给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。 树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。
2025-04-25 23:51:46
333
原创 [三分钟学算法]栈-比较含退格的字符串:给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。
给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。
2025-04-25 23:06:43
373
原创 [三分钟]入门web自动化测试(一):1.使用驱动管理下载web驱动(WebDriver);2.初步认识和使用Selenium
简单介绍WebDriver和Selenium
2025-04-24 23:48:54
2049
原创 [三分钟学算法]栈-删除字符串中的所有相邻重复项:给出由小写字母组成的字符串 s,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 s 上反复执行重复项删除操作,直到无法继续删除。
给出由小写字母组成的字符串 s,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 s 上反复执行重复项删除操作,直到无法继续删除。
2025-04-24 14:14:40
403
原创 [三分钟学算法]字符串-最长公共前缀:编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ““。
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。
2025-04-24 13:17:56
327
原创 [三分钟学算法]哈希表-两数之和:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。
2025-04-23 22:32:55
463
原创 [三分钟学算法]链表-两数相加:给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。
2025-04-23 21:03:55
332
原创 [三分钟学算法]分治-归并排序:给你一个整数数组 nums,请你将该数组升序排列。你必须在 不使用任何内置函数 的情况下解决问题,时间复杂度为 O(nlog(n)),并且空间复杂度尽可能小。
给你一个整数数组 nums,请你将该数组升序排列。你必须在 不使用任何内置函数 的情况下解决问题,时间复杂度为 O(nlog(n)),并且空间复杂度尽可能小。
2025-04-22 23:41:55
304
原创 [三分钟学算法]分治-快排-颜色分类:给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地 对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。
给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地 对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。必须在不使用库内置的 sort 函数的情况下解决这个问题。
2025-04-22 22:36:55
515
原创 [三分钟学算法]Java-模拟-替换所有的问号:给你一个仅包含小写英文字母和 ‘?‘ 字符的字符串 s,请你将所有的 ‘?‘ 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。
给你一个仅包含小写英文字母和 '?' 字符的字符串 s,请你将所有的 '?' 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。注意:你 不能 修改非 '?' 字符。
2025-04-21 23:15:33
410
原创 [三分钟学算法]Java-位运算-判定字符是否唯一:实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
2025-04-21 22:46:20
405
原创 [三分钟学算法]Java-二维前缀和:给你一个 n 行 m 列的矩阵 A ,下标从1开始。有 q 次查询,每次查询输入 4 个参数 x1 , y1 , x2 , y2。
java - 二维前缀和
2025-04-20 23:33:45
752
原创 [三分钟学算法] Java-前缀和:给定一个长度为n的数组a1,a2,....an.接下来有q次查询, 每次查询有两个参数l,r.对于每个询问, 请输出 al + ...+ ar
【代码】[三分钟学算法] Java-前缀和:给定一个长度为n的数组a1,a2,....an.接下来有q次查询, 每次查询有两个参数l,r.对于每个询问, 请输出 al + ...+ ar。
2025-04-19 23:49:24
408
原创 [三分钟学算法] Java-滑动窗口-长度最小的子数组: 给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0。
2025-04-19 22:25:54
448
原创 [三分钟学算法]Java双指针-移动零:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。遇到非0元素,交换nums[cur] 和 nums[dest+1],dest++,cur++这道题涉及了数组划分,将给定的nums数组划分为非0区和0区。[dest+1, cur-1] --> 已遍历区间的0区。输入: nums = [0,1,0,3,12][0, dest] --> 已遍历区间的非0区。[cur, n-1] --> 未遍历区间。输出: [1,3,12,0,0]输入: nums = [0]
2025-04-18 22:35:48
324
原创 [三分钟]入门JVM:运行时数据区
Java 虚拟机栈描述的是 Java 方法执行的内存模型,每个方法在执行的同时都会创建⼀个栈帧(Stack Frame)⽤于存储局部变量表、操作数栈、动态链接、方法出口等信息。我们常说的堆内存、栈内存中,栈内存指的就是虚拟机栈。堆里面分为两个区域:新生代和老生代,新生代放新建的对象,当经过⼀定 GC(垃圾回收) 次数之后还存活的对象会放入老生代。JVM在运行过程中会在不同的内存区域存储不同类型的数据。a: 普通的成员变量,包含在new的对象中 ==》堆。堆的作用:程序中创建的所有对象都在保存在堆中。
2025-04-17 23:59:32
202
原创 [手把手教学] 如何在Linux上下载JDK,Tomcat,MySQL?
在 CentOS 7 中,yum(Yellowdog Updater Modified)是一个用于管理软件包的工具,允许用户安装、更新、删除、查询和管理软件包。常用命令命令解释安装一个软件包卸载一个软件包yum update将所有可更新的软件包更新到最新版本更新某个特定的软件包查看一个软件包的详细信息搜索包含该关键词的软件包名称及其简短描述过滤出包名中含有该关键词的软件包,适用于快速查找包名。
2025-04-16 21:35:41
1800
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅