自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 April.16.2022——53. 最大子序和

April.16.2022——53. 最大子序和53. 最大子序和力扣题目链接(opens new window)给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。解题思路贪心算法遍历数组,遍历的同时不断累加 记和为count如果加上 nums[i] 后count的和为负数,那就让count 的和为0取

2022-04-16 21:49:52 365

原创 April.12.2022——376.摆动序列

April.12.2022——376.摆动序列376. 摆动序列力扣题目链接(opens new window)如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后

2022-04-12 18:23:57 114

原创 April.12.2022——折纸问题(微软面试题)

April.12.2022——折纸问题(微软面试题)问题描述请把一段纸条竖着放在桌子上,然后从纸条的下边向上方对折1次,压出折痕后展开。此时 折痕是凹下去的,即折痕突起的方向指向纸条的背面。如果从纸条的下边向上方连续对折2 次,压出折痕后展开,此时有三条折痕,从上到下依次是下折痕、下折痕和上折痕。给定一 个输入参数N,代表纸条都从下边向上方连续对折N次,请从上到下打印所有折痕的方向 例如:N=1时,打印: down;N=2时,打印: down down up问题简化:通过折纸操作发现,最后打

2022-04-12 16:44:37 964 1

原创 April.08.2022——Selenium基础(二)

April.08.2022——Selenium基础(二)import java.awt.List;import java.util.*;import javax.swing.plaf.basic.BasicGraphicsUtils;import org.apache.bcel.generic.NEW;import org.apache.commons.io.output.CloseShieldOutputStream;import org.openqa.selenium.By;import

2022-04-08 18:08:31 234

原创 April.6.2022——Selenium基础

April.6.2022——Selenium基础第二章——Selenium2-2 2-3 Html页面定位基础知识/HTML 页面元素定位工具讲解Webdriver —— 配置环境下载对应版本的webdriver和chrome进行环境变量配置修改系统变量中的path 新建一个目录,添加webdriver的安装路径xpath插件在使用webdriver对网页进行测试的时候,如果遇到多个标签名相同的时候,可以采用xpath插件对标签以及网页元素进行定位(在使用xpath的时候要注意

2022-04-07 11:23:28 506

原创 April.03.2022——无重复字符的最长子串

April.03.2022——无重复字符的最长子串无重复字符的最长子串示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwk

2022-04-03 16:45:47 354

原创 March.31.2022——54.最大二叉树

March.31.2022——54.最大二叉树题目描述54.最大二叉树力扣题目地址(opens new window)给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。通过给定的数组构建最大二叉树,并且输出这个树的根节点。输入:nums = [3,2,1,6,0,5]输出:[6,3,5,null,2,0,null,null,1]解

2022-03-31 20:27:14 83

原创 March.31.2022——112. 路径总和

March.31.2022——112. 路径总和题目描述112. 路径总和力扣题目链接(opens new window)给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。解题思路最初我的思路是 再递归的时候把路径上每个节点的val值进行累加,再进行判断,如果累加和等于target的话就返回true但是这样代码会比较麻烦可以用递减,让计数器count初始为目标和,然后每次减去遍历路径节点上的数值

2022-03-31 17:50:00 175

原创 March.31.2022——236.二叉树的公共祖先

March.31.2022——236.二叉树的公共祖先题目描述给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出:3解释:节点 5 和节点 1 的最近公共祖先是节点 3 。输入:root = [

2022-03-31 11:05:16 109

原创 March.30.2022——541.反转字符串II

March.30.2022——541.反转字符串II题目描述给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例 1:输入:s = “abcdefg”, k = 2输出:“bacdfeg”示例 2:输入:s = “abcd”, k = 2输出:“bacd”解题思路代码实现class

2022-03-30 17:17:57 558

原创 March.30.2022——剑指37 序列化反序列化二叉树

March.30.2022——剑指37 序列化反序列化二叉树题目描述请实现两个函数,分别用来序列化和反序列化二叉树。你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。提示:输入输出格式与 LeetCode 目前使用的方式一致,详情请参阅 LeetCode 序解题思路代码实现序列化:public static String serialByPre(Node hea

2022-03-30 15:21:21 312

原创 March.30.2022——求二叉树的后继节点

求二叉树的后继节点题目描述在二叉树中找到一个节点的后继节点public class Node{ public int value; pubulic Node left; pubulic Node right; pubulic Node parent; pubulic Node(int val){ value = val; }}该结构比普通二叉树节点结构多了一个指向父节点额par

2022-03-30 10:17:01 153

原创 March.29.2022——二叉树的相关概念及实现判断(一)

March.29.2022——二叉树的相关概念及实现判断(一)1.如何判断一棵树是搜索二叉树:对于每一颗子树左边的树都比他自己小 右边比自己大判断搜索二叉树方法:中序遍历 后该二叉树不会降序;解法一:代码实现左树为搜索二叉树,左树上的最小值必须要大于我 返回值:是否为搜索二叉树,和最大值,最小值右树为搜索二叉树,右树上的最大时要小于我 返回值:是否为搜索二叉树,和最小值,最大值//默认左树给我一个信息,得到三个返回值//默认右树给我一个信息,得到三个返回值//得到自己的三个返

2022-03-29 23:49:13 816

原创 March.29.2022——二叉树的递归遍历

March.29.2022——二叉树的递归遍历二叉树的递归遍历递归三要素:(dmsxl)确定递归函数的参数和返回值: 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。确定终止条件: 写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。确定单层递归的逻辑: 确定每一层递归需要处

2022-03-29 09:37:21 100

原创 March.29.2022——二叉树理论基础

March.29.2022——二叉树理论基础满二叉树满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。完全二叉树什么是完全二叉树?完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2^(h-1) 个节点。二叉搜索树前面介绍的树,都没有数值的,而二叉搜索树是有数值的了,二叉搜索树是一个有序树。若它的左

2022-03-29 08:59:02 347

原创 March.28.2022——344.反转字符串

March.28.2022——344.反转字符串344.反转字符串力扣题目链接(opens new window)编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1)O(1)O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例

2022-03-28 18:56:18 105

原创 March.28.2022——四数之和

March.28.2022第18题. 四数之和力扣题目链接(opens new window)题意:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例: 给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。 满足要求的四元组集合为: [ [-1,

2022-03-28 10:57:52 302

原创 March.25.2022——15.三数之和

March.25.2022——15.三数之和第15题. 三数之和力扣题目链接(opens new window)给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意: 答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ]解题思路先调用java

2022-03-28 10:16:37 329

原创 March.24.2022——赎金信

March.24.2022——赎金信383. 赎金信力扣题目链接(opens new window)给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。)注意:你可以假设两个字符串均只含有小写字

2022-03-24 17:11:53 75

原创 March.22.2022——两数之和

March.22.2022——两数之和1. 两数之和力扣题目链接给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

2022-03-24 11:05:39 148

原创 March.24.2022---二叉树(左神笔记)

字写的丑,请见谅!

2022-03-24 09:20:59 875

原创 March.22.2022——快乐数

March.22.2022第202题. 快乐数力扣题目链接(opens new window)编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。示例:输入:19输出:true解释:1^2 + 9^2 = 828^2 + 2^2 = 6

2022-03-22 12:50:33 129

原创 March.21.2022——349. 两个数组的交集

349. 两个数组的交集力扣题目链接(opens new window)题意:给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]解释:[4,9] 也是可通过的HashSet简介HashSet这个类实现了Set集合,实际为一个HashMap的实例。hashSet( ) 构造一个空的set 其底层是.

2022-03-21 23:10:16 305

原创 March.18.2022----242.有效的字母异位词

242.有效的字母异位词力扣题目链接(opens new window)给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1: 输入: s = “anagram”, t = “nagaram” 输出: true示例 2: 输入: s = “rat”, t = “car” 输出: false说明: 你可以假设字符串只包含小写字母。toCharArray( )方法将一个字符串转换成一个 Character 型的字符数组,并且这里面的字符是原封不动的拿进去的,意思

2022-03-19 17:07:19 248

原创 March.18.2022——环形链表2

142.环形链表II力扣题目链接(opens new window)题意: 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例1:输入:head = [3,2,0,-4], pos = 1输出:返回索引为 1 的链表节点解释:链表中有一个环,其尾部连接到第二个节点。示例2:输入:head

2022-03-18 16:53:36 87

原创 March.18.2022----面试题 02.07. 链表相交

面试题 02.07. 链表相交力扣题目链接(opens new window)给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:题目输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Intersected at ‘8’解释:相交节点的值为 8 (注意,

2022-03-17 21:10:16 101

原创 March.17.2022——19.删除链表的倒数第N个节点

19.删除链表的倒数第N个节点力扣题目链接(opens new window)给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例链表:1–>2–>3–>4–>5–>6要求删除倒数第二个节点 即 n = 2;链表:1–>2–>3–>4–>5–>6 即删除节点5 链表变为链表:1–>2–>3–>4–>6解题思路:双指针法 (快慢指针)题解一:设置虚拟头

2022-03-17 16:56:27 181 1

原创 March.16.2022——24. 两两交换链表中的节点

March.16.202224. 两两交换链表中的节点力扣题目链接(opens new window)给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。1—>2—>3—>4—>5改为:2—>1—>4—>3—>6解题思路画图比较好理解,一共分为4步:设置虚拟头节点 为了防止链表断开 设置临时节点 保存第三个节点将虚拟头节点的指针指向head的后一个节点,与之相连

2022-03-16 20:48:48 102

原创 March.15.2022——206.反转链表

March.15.2022206.反转链表力扣题目链接给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?

2022-03-15 21:07:16 83

原创 March.11.2022——中缀表达式转化为后缀表达式统一思路

March.11.2022中缀表达式转化为后缀表达式统一思路 (8步)初始化两个栈:运算符栈s1和储存中间结果的栈s2;从左至右扫描中缀表达式;遇到操作数时,将其压s2;遇到运算符时,比较其与s1栈顶运算符的优先级:1). 如果s1为空,或栈顶运算符为左括号“(”,则直接将此运算符入栈;2). 否则,若优先级比栈顶运算符的高,也将运算符压入s1;3). 否则,将s1栈顶的运算符弹出并压入到s2中,再次转到(4-1)与s1中新的栈顶运算符相比较;遇到括号时:. 如

2022-03-15 10:59:35 81

原创 March 10.2022 --补充(POLAND NOTATION)

March 10.2022 --补充(POLAND NOTATION)package Zhan;import java.util.ArrayList;import java.util.List;import java.util.Stack;//如果要使用List 包 那必须要导包!! alt + enterpublic class PolandNotation { public static void main(String[] args) { //逆波兰表达式 (3

2022-03-10 23:18:07 379

原创 March.10.2022

March.10.2022今天就开始学习链表的相关知识啦!注意:链表操作中,可以使用原链表来直接进行删除操作,也可以设置一个虚拟头结点在进行删除操作,接下来看一看哪种方式更方便为了统一:即不论需要删除的节点是不是头节点都可以使用的方法可以设置一个虚拟头结点,这样原链表的所有节点就都可以按照统一的方式进行移除了。这个虚拟节点可以记为: dummy node03.移除链表元素力扣题目链接(opens new window)题意:删除链表中等于给定值 val 的所有节点。示例 1:输入:h

2022-03-10 19:49:55 257

原创 March.9.2022——59.螺旋矩阵II

March.9.202259.螺旋矩阵II力扣题目链接(opens new window)给定一个正整数 n,生成一个包含 1 到 n2n^2n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]解题思路本题并没有用到什么算法但是在和其他群友交流的时候,其他同学也给出了更简洁的办法//offset控制了偏移量,在不同的循环中,偏移量要-2 这里可以画图看一下代码实现class

2022-03-09 15:02:44 76

原创 March.8.2022

March.8.2022209.长度最小的子数组力扣题目链接(opens new window)给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3] 输出:2 解释:子数组 [4,3] 是该条件下的长度最小的子数组。解题思路class Solution { // 滑动窗口 public int minS

2022-03-09 14:58:40 82

原创 March 7.2022.

704. 二分查找力扣题目链接(opens new window)给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现在 nums 中并且下标为 4 示例 2:输入: nums = [-1,0,3,5,9,12], target =

2022-03-07 21:37:33 164

原创 线程笔记

线程一、创建线程的几种方法public class test1 { public static void main(String[] args) { //创建线程的3种方式: //方式1 Thread th1 = new Thread(){ @Override public void run() { System.out.println("线程th1开执行了");

2021-01-20 19:05:37 91

原创 Maven环境配置( ‘mvn‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。)

一 、MAVEN环境的配置首先通过“计算机->属性->高级系统设置->环境变量”进入环境变量设置再通过“系统变量->新建”添加了一个系统变量MAVEN_HOME,其变量值就是你apache-maven-3.5.2所存在的绝对路径,绝对路径请参考你下载apache-maven-3.5.2安装包的地址。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sxXXfcnC-1605430547607)(C:\Users\兔qing\AppData

2020-11-15 16:56:54 260

原创 Java SE基础知识(15)

一、概述在JAVA中,用Thread类代表线程,所有线程对象,都必须是Thread类或者Thread类子类的实例。每个线程的任务就是执行一段顺序执行的代码,JAVA使用线程执行体来容纳这段代码。所以,我们创建线程时,主要是根据实际需求,编写放入线程执行体的代码。二、三种创建方式2.1 第一种,通过继承Thread类创建线程类通过继承Thread类来创建并启动多线程的步骤如下:1、定义一个类继承Thread类,并重写Thread类的run()方法,run()方法的方法体就是线程要完成的任务,因此把r

2020-08-20 23:44:54 643

原创 Java SE基础知识(14)

IO流简介:流的定义:流是指一连串流动的字符,是以先进先出方式发送信息的通道。按流向分:输出流:OutputStream和Writer为基类​ 输入流:InputStream和Reader为基类按处理数据单元划分:字节流:字节输入流:InputStream基类​ 字节输出流:OutputStream基类​ 字符流:字符输入流:Reader基类​ 字节输出流:Writer基类

2020-08-13 22:15:07 126

原创 Java SE基础知识(13)

Map集合Map集合:就是用来存储 这种 键值映射关系的数据 。**Map集合做大的特点:**可以储存键值对应的元素。将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值。Map集合与Collection 集合的区别:Map集合储存元素是成对出现的,Map集合的键是唯一的,值是可以重复的。Collection 集合储存元素是单独出现的,其中Set是唯一的,List是可重复的。Map 是双列集合,Collection 集合是单列集合。多次存储相同的键,就会发

2020-08-08 23:59:07 122

空空如也

空空如也

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

TA关注的人

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