自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 selenium--获取页面信息和截图

可以看到,运行后左边目录就有了一个 a.jpgd 文件,里面是页面截图。可以看到,左边目录下多了一个文件名为 b.jpg 的文件。获得这个页面的html源码。

2022-11-26 22:12:18 1314 1

原创 selenium--关闭窗口,指定窗口大小,前进,后退,刷新等等

对于driver.close(),他是关闭当前窗口,所有窗口关闭完后,浏览器自动关闭,相当于每个页面的小叉叉。对于driver.quit(),不管有多少窗口,直接关闭浏览器,相当于下面这个小叉叉。,具体的可以搜一下或者看一下我另一篇selenium的文章,很简单的。对上面代码进行调试,跳转到百度页面,默认的大小是这样的。在练习2的时候为了避免浏览器跑到快看不清结果可以导入。这两个都是常用的方法,但是他们有什么区别呢?可以看到,页面变成了我们指定的大小。

2022-11-26 20:53:24 3134

原创 selenium---元素定位(find_element)

find_element属于定位元素的一种方法,包含了常用的定位方法。在使用find——element 时 一定要导入相关的包,不然会报错。

2022-07-20 17:35:02 14041

原创 LeetCode矩阵置零

给定一个mxn的矩阵,如果一个元素为0,则将其所在行和列的所有元素都设为0。请使用原地算法。示例1输入matrix=[[1,1,1],[1,0,1],[1,1,1]]输出示例2输入输出。

2022-07-16 22:58:03 249

原创 剑指 Offer 52. 两个链表的第一个公共节点

输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点 c1 开始相交。示例 1:示例 2:示例 3:方法2:方法3来源:力扣(LeetCode)链接:https://leetcode.cn/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...

2022-07-04 23:26:08 58

原创 剑指 Offer 28. 对称的二叉树

(终于自己做出来一道递归题了 太不容易了)请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:示例 1:示例 2:来源:力扣(LeetCode)链接:https://leetcode.cn/problems/dui-cheng-de-er-cha-shu-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出

2022-07-04 21:17:52 72

原创 剑指 Offer 18. 删除链表的节点

给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。注意:此题对比原题有改动示例 1:示例 2:代码2来源:力扣(LeetCode)链接:https://leetcode.cn/problems/shan-chu-lian-biao-de-jie-dian-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...

2022-06-30 22:23:59 79

原创 剑指 Offer 04. 二维数组中的查找

在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:给定 target = 5,返回 true。给定 target = 20,返回 false。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof著作权归领扣网络所有。商业转载请联系官方授权

2022-06-30 21:48:06 83

原创 剑指 Offer 58 - II. 左旋转字符串

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:示例 2:方法一:新建一个字符串,将原来的字符串从n开始后的元素先插入到新的字符串中,插完后再将 [0,n)的字符插入到新字符串中。方法二:先将原来的字符串转换为数组反转;再将[0,len-n-1]反转;最后将[len-n,len-1]反转法一:法二:来源:力扣(LeetCode)

2022-06-13 21:46:23 52

原创 LeetCode566. 重塑矩阵

在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的 行遍历顺序 填充。如果具有给定参数的 reshape 操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例 1:示例 2:方法一:将二维数组转换成一维数组,再将一维数组转换成所

2022-06-13 17:39:13 65

原创 LeetCode121. 买卖股票的最佳时机

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:示例 2:来源:力扣(LeetCode)链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock著作权归领扣网络所有。商业转载请

2022-06-12 22:41:50 52

原创 350. 两个数组的交集 II

给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。示例 1:示例 2:先将两个数组排序然后从两个数组的第一个元素开始比较:(1)如果两个元素相等,那么将这个元素插入到所创建的ArrayList类型变量中,接着将这两个数组后移接着比较。(2)如果数组1的元素大于数组2,因为两个数组都已经排序,那么就只将小的那个数组往后移接着比较。就这样一直重

2022-06-12 20:47:47 64

原创 剑指 Offer 35. 复杂链表的复制(Java)

请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例 1:示例 2:示例 3:示例 4:利用哈希表实现(可以在b站搜一些大佬的视频讲解,更加直观)来源:力扣(LeetCode)链接:https://leetcode.cn/problems/fu-za-lian-biao-de-fu-zhi-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请

2022-06-12 20:02:44 159

原创 剑指 Offer 06. 从尾到头打印链表(Java)

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:先算出链表的长度,再定义一个该长度的数组,从数组的最后一个元素开始存放head从首节点开始的值。

2022-06-12 17:49:35 171

原创 剑指 Offer 30. 包含min函数的栈(Java)

定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。思路一:用栈实现:思路二:用数组实现:法一:用栈实现法二:用数组实现来源:力扣(LeetCode)链接:https://leetcode.cn/problems/bao-han-minhan-shu-de-zhan-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...

2022-06-11 23:37:12 107

原创 剑指 Offer 09. 用两个栈实现队列(Java)

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:示例 2:如果题目看不懂的话,可以看这道题的评论,有许多大佬讲的还是很清楚的,这里就不说了。题目说是用两个栈实现一个队列,首先得知道所以,我理解的尾插操作为用两个栈实现队列的先进先出。首先建立两个栈,其长度为0,表示其为空由于栈是先进后出,所以每插入一个元素,需要将其他的元

2022-06-11 22:11:20 327

原创 LeetCode53. 最大子数组和

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例 1:示例 2:示例 3:定义一个临时变量temp用来储存临时和,result用来储存总的最大和。遍历数组,每遍历一个元素,将他和前面的已遍历的元素的和(temp)相加:(1)如果当前元素 + 前面已遍历的元素的和(temp)>= 该元素,说明前面已遍历的元素的和(temp) >= 0,相加的话可以使这个值继续增大。所以更新temp的值,使 temp = temp

2022-06-10 15:28:51 181

原创 [编程题]旧键盘 (20)

题目旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。输入描述:输入在2行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过80个字符的串,由字母A-Z(包括大、小写)、数字0-9、以及下划线“_”(代表空格)组成。题目保证2个字符串均非空。输出描述:按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有1个坏键。示例1输入 7_Thi

2022-05-31 11:46:57 90

原创 LeetCode606. 根据二叉树创建字符串

目录标题思路代码标题给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。空节点使用一对空括号对 “()” 表示,转化后需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。示例 1:输入:root = [1,2,3,4]输出:“1(2(4))(3)”解释:初步转化后得到 “1(2(4)())(3()())” ,但省略所有不必要的空括号对后,字符串应该是"1(2(4))(3)" 。示例 2:输入:ro

2022-05-26 20:16:09 94

原创 JZ36 二叉搜索树与双向链表

目录题目代码题目数据范围:输入二叉树的节点数 0 \le n \le 10000≤n≤1000,二叉树中每个节点的值 0\le val \le 10000≤val≤1000要求:空间复杂度O(1)O(1)(即在原树上操作),时间复杂度 O(n)O(n)注意:1.要求不能创建任何新的结点,只能调整树中结点指针的指向。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继2.返回链表中的第一个节点的指针3.函数返回的TreeNode,有左右指针,其实可以看成一个双向链表的数据结

2022-05-25 19:42:30 54

原创 KY11 二叉树遍历

目录题目代码题目编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。输入描述:输入包括1行字符串,长度不超过100。输出描述:可能有多组测试数据,对于每组数据, 输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。 每个输出结果占一行。示例1输入: abc##de#g##f

2022-05-20 22:33:18 106

原创 LeetCode101. 对称二叉树

给你一个二叉树的根节点 root , 检查它是否轴对称。示例 1:输入:root = [1,2,2,3,4,4,3] 输出:true示例 2:输入:root = [1,2,2,null,3,null,3] 输出:false思路比较左右子树的镜像关系 = 左右子树根节点的值是否相等 && 左子树的左子树 和 右子树的右子树是不是镜像关系 && 左子树的右子树 和 右子树的左子树 是不是镜像关系代码class Solution { public

2022-05-17 21:49:49 64

原创 LeetCode110. 平衡二叉树

目录题目思路代码题目给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1 。示例 1:输入:root = [3,9,20,null,null,15,7] 输出:true示例 2:输入:root = [1,2,2,3,3,null,null,4,4] 输出:false示例 3:输入:root = [] 输出:true思路遍历二叉树,根据平衡二叉树的定义,计算每个节点的左右子树的高度,进

2022-05-17 20:59:41 57

原创 [二叉树]实现二叉树的遍历、深度

目录学习目标概念学习目标掌握二叉树数据结构的概念 掌握二叉树前中后序的递归写法概念一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。——————————————————————————二叉树的特点:每个结点最多有两棵子树,即二叉树不存在度大于 2 的结点。二叉树的子树有左右之分,其子树的次序不能颠倒,因此二叉树是有序树...

2022-05-17 20:00:58 129

原创 LeetCode104. 二叉树的最大深度

目录题目代码题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7],返回它的最大深度 3 。代码class Solution { public int maxDepth(TreeNode root) { if(root == null){ return 0; } in

2022-05-17 18:51:58 58

原创 LeetCode94. 二叉树的中序遍历

目录题目代码题目给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。示例 1:输入:root = [1,null,2,3] 输出:[1,3,2]示例 2:输入:root = [] 输出:[]示例 3:输入:root = [1] 输出:[1]代码class Solution { public List<Integer> inorderTraversal(TreeNode root) { List<Integer> re

2022-05-15 21:03:31 101

原创 LeetCode100. 相同的树

目录题目思路:代码:题目给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入:p = [1,2,3], q = [1,2,3] 输出:true示例 2:输入:p = [1,2], q = [1,null,2] 输出:false示例 3:输入:p = [1,2,1], q = [1,1,2] 输出:false思路:先比较两个数的跟节点的值是否相同,如果相同,再递归比较

2022-05-15 20:38:23 56

原创 LeetCode144. 二叉树的前序遍历

文章目录题目代码题目给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root = [1,null,2,3] 输出:[1,2,3]示例 2:输入:root = [] 输出:[]示例 3:输入:root = [1] 输出:[1]示例 4:输入:root = [1,2] 输出:[1,2]示例 5:输入:root = [1,null,2] 输出:[1,2]代码class Solution { public List<In

2022-05-15 19:55:05 140

原创 LeetCode155. 最小栈

文章目录题目:思路代码题目:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。实现 MinStack 类:MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop()删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int getMin() 获取堆栈中的最小元素。示例 1:输入: [“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“t

2022-05-11 18:40:42 54

原创 LeetCode232. 用栈实现队列

文章目录题目代码:题目请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek()返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop f

2022-05-11 17:55:36 46

原创 LeetCode225. 用队列实现栈

文章目录题目:思路:完整代码:代码分解:题目:请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。注意:你只能使用队列的基本操作 —— 也就是 push to back、pee

2022-05-11 15:15:28 230

原创 LeetCode20. 有效的括号

给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()” 输出:true示例 2:输入:s = “()[]{}” 输出:true示例 3:输入:s = “(]” 输出:false示例 4:输入:s = “([)]” 输出:false示例 5:输入:s = “{[]}” 输出:true解析:本题使用栈方法

2022-05-11 09:37:49 71

原创 [双向链表]实现一个双向链表

文章目录学习内容完整代码:代码分解:学习内容使用java实现一个双向链表的增删改查完整代码://双向链表的节点,需要记录next和prevclass Node{ int val; Node next; Node prev; public Node(int val){ this.val = val; }}//实现一个双向链表public class MyLinkedList { //记录头节点的位置 private N

2022-05-10 19:30:01 143

原创 [栈和队列]栈和队列的实现

目录栈概念实现用顺序表实现栈用链表实现栈队列概念实现用链表实现队列环形队列使用数组实现环形队列栈概念栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据在栈顶。实现用顺序表实现栈利用顺序表实现,即使用尾插 + 尾删的方式实现public class myS

2022-05-10 17:26:24 59

原创 LeetCode142. 环形链表 II

给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:返回索引为

2022-05-10 11:14:10 64

原创 LeetCode141. 环形链表

给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。如果链表中存在环 ,则返回 true 。 否则,返回 false 。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个

2022-05-08 14:15:31 112

原创 牛客JZ76 删除链表中重复的结点

描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表 1->2->3->3->4->4->5 处理后为 1->2->5数据范围:链表长度满足 0 \le n \le 1000 \0≤n≤1000 ,链表中的值满足 1 \le val \le 1000 \1≤val≤1000示例1输入:{1,2,3,3,4,4,5}返回值:{1,2,5}示例2输入:{1,1,1,8}返回值:

2022-05-07 19:04:39 316

原创 牛客OR36 链表的回文结构

描述对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。测试样例:1->2->2->1返回:true思想:1.先将链表A拷贝到另一个新建链表B中2.再将链表B反转(http://t.csdn.cn/X3y26)3.将反转后的链表B和链表A进行比较,并返回代码如下:public class PalindromeList {

2022-05-07 18:58:50 377

原创 牛客CM11 链表分割

描述现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。题目解析:思路:代码如下:public class Partition { public ListNode partition(ListNode pHead, int x) { // write code here if(pHead == null){ ret

2022-05-07 14:53:20 116

原创 LeetCode21. 合并两个有序链表

题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]代码如下:class Solution { public ListNode mergeTwoLists(ListNode list1, ListNo

2022-05-07 09:55:25 274

空空如也

空空如也

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

TA关注的人

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