自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 问答 (1)
  • 收藏
  • 关注

原创 Spring源码下载编译

Spring源码下载编译

2022-10-22 16:54:14 252 1

原创 二叉树

226. 翻转二叉树给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例 2:输入:root = [2,1,3]输出:[2,3,1]示例 3:输入:root = []输出:[]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/invert-binary-tree著作权归领扣网络所有。商业转载请联系官方

2022-05-31 21:34:34 315

原创 【la】单调栈结构

三级标题public int[] nextGreaterElement(int[] nums) { // 输⼊ nums = [2,1,2,4,3],返回 [4,2,4,-1,-1] Stack<Integer> s = new Stack<>(); int[] res = new int[nums.length]; for (int i = nums.length - 1;i >= 0;i--){

2022-04-10 18:20:25 148

原创 【la】三道括号题目

20. 有效的括号简单给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例 2:输入:s = "()[]{}"输出:true示例 3:输入:s = "(]"输出:false示例 4:输入:s = "([)]"输出:false示例 5:输入:s = "{

2022-04-10 10:11:57 108

原创 【la】队列实现栈、栈实现队列

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

2022-04-09 22:59:34 78

原创 【la】反转链表

92. 反转链表 II给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 示例 1:输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1,4,3,2,5]示例 2:输入:head = [5], left = 1, right = 1输出:[5]来源:力扣(LeetCode)链接:https

2022-04-09 15:04:27 93

原创 【la】单链表的六⼤题型

三级标题三级标题三级标题三级标题三级标题三级标题三级标题三级标题

2022-04-08 22:29:20 574

原创 【la】原地修改数组

方法:快慢指针26. 删除有序数组中的重复项给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在

2022-03-17 15:58:45 190

原创 【la】⽥忌赛⻢

思路:将⻬王和⽥忌的⻢按照战⽃⼒排序,然后按照排名⼀⼀对⽐。如果⽥忌的⻢能赢,那就⽐赛,如果赢不了,那就换个垫底的来送⼈头,保存实⼒。870. 优势洗牌给定两个大小相等的数组 A 和 B,A 相对于 B 的优势可以用满足 A[i] > B[i] 的索引 i 的数目来描述。返回 A 的任意排列,使其相对于 B 的优势最大化。 示例 1:输入:A = [2,7,11,15], B = [1,10,4,11]输出:[2,11,7,15]示例 2:输入:A = [12,24

2022-03-17 10:58:13 343

原创 【la】二分搜索二

二分搜索步骤1、确定 x, f(x), target 分别是什么,并写出函数 f 的代码。2、找到 x 的取值范围作为⼆分搜索的搜索区间,初始化 left 和 right 变量。3、根据题⽬的要求,确定应该使⽤搜索左侧还是搜索右侧的⼆分搜索算法,写出解法代码。// 函数 f 是关于⾃变量 x 的单调函数int f(int x) { // ...}// 主函数,在 f(x) == target 的约束下求 x 的最值int solution(int[] nums, int target) {

2022-03-16 16:27:01 78

原创 【la】二分搜索

以下三种题型「搜索区间」全都统⼀成两端都闭,好记,注意修改 nums[mid] == target 条件处的代码和返回的逻辑。统一模板:int binary_search(int[] nums, int target) { int left = 0, right = nums.length - 1; while(left <= right) { int mid = left + (right - left) / 2; if (nums[mid] < target) {

2022-03-15 15:46:34 67

原创 【la】滑动窗⼝算法

76. 最小覆盖子串给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。 如果 s 中存在这样的子串,我们保证它是唯一的答案。 示例 1:输入:s = "ADOBECODEBANC", t = "ABC"输出:"BANC"示例 2:输入:s = "a", t = "

2022-03-14 21:09:30 796

原创 【la】差分数组

差分数组概述1. 应用场景频繁对原始数组的某个区间的元素进⾏增减。给你输⼊⼀个数组 nums,给nums[i…j] 加上 val。2. 差分数组使用方法2.1 构造差分数组对 nums 数组构造⼀个 diff 差分数组,diff[ i ] = nums[ i ] - nums[ i - 1 ]int[] diff = new int[nums.length];// 构造差分数组diff[0] = nums[0];for (int i = 1; i < nums.length;

2022-03-12 14:24:42 239 1

原创 【la】前缀和数组

1. 303. 区域和检索 - 数组不可变给定一个整数数组 nums,处理以下类型的多个查询: 计算索引 left 和 right (包含 left 和 right)之间的 nums 元素的 和 , 其中 left <= right 实现 NumArray 类: NumArray(int[] nums) 使用数组 nums 初始化对象 int sumRange(int i, int j) 返回数组 nums 中索引 left 和 right 之间的元素的

2022-03-12 08:31:25 175

原创 数据结构(二)Trie树+并查集+堆

1. Trie字符串统计 (Trie树)Trie树作用:高效地存储和查找字符串集合的数据结构。维护一个字符串集合,支持两种操作:(1)I x 向集合中插入一个字符串 x ;(2)Q x 询问一个字符串在集合中出现了多少次。共有 N 个操作,输入的字符串总长度不超过 10^5 ,字符串仅包含小写英文字母。输入格式第一行包含整数 N ,表示操作数。 接下来 N 行,每行包含一个操作指令,指令为 I x 或 Q x 中的一种。输出格式对于每个询问指令 Q x,都要输出一个整数作为结果,

2022-02-08 23:45:28 694

原创 week2 双指针算法

1. 数组元素的目标和 (双指针算法)800.给定两个升序排序的有序数组 A 和 B,以及一个目标值 x 。数组下标从 0 开始。请你求出满足 A[i]+B[j]=x 的数对 (i,j)。数据保证有唯一解。输入格式第一行包含三个整数 n,m,x ,分别表示 A 的长度,B 的长度以及目标值 x 。第二行包含 n 个整数,表示数组 A 。第三行包含 m 个整数,表示数组 B 。输出格式共一行,包含两个整数 i 和 j。数据范围数组长度不超过 10^5 。同一数组内元素各不相同。

2022-02-06 22:04:59 77

原创 第二章 数据结构(一)链表、栈、队列、单调栈、单调队列、KMP

1 链表用数组模拟链表:单链表、双链表用 e[i] 表示第 i 个节点的值,ne[i] 表示第 i 个节点下一个节点的下标。e[0] = 3 , ne[0] = 1;…e[3] = 9 , ne[3] = -1.e和ne都是整数数组,空节点的下标用-1来表示,head表示第一个节点的下标。// head 表示头节点的下标// e[N] 表示节点 i 的值// ne[i] 表示节点 i 下一个节点的下标// idx 存储当前已经用到了哪个点 (尾节点的下一点,那个空的节点) i

2022-01-27 00:27:48 892

原创 LC1.4 回文数、正则表达式匹配

1 回文数给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/palindrome-numberclass Solu

2022-01-19 17:39:23 699

原创 LC1.3 整数反转、字符串转换整数 (atoi)

1. 整数反转给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-integerclass Solution {public: int reverse(int x) {

2022-01-16 20:01:55 96

原创 LC 1.2 寻找两个正序数组的中位数、最长回文子串、Z 字形变换

1. 寻找两个正序数组的中位数给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/median-of-two-sorted-array

2022-01-15 23:15:45 210

原创 LC 1.1 两数之和、两数相加、无重复字符的最长子串

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

2022-01-14 16:56:28 128

原创 第一章 基础算法(三) 双指针、位运算、离散化、区间合并

1 双指针算法(一)两类双指针算法:有两个指针分别指向两个序列;有两个指针指向一个序列;(二)双指针算法通用模板: for(i = 0,j = 0;i < n;i++) { while(j < i && check(i,j)) j ++; // 每道题目的具体逻辑 } (三)核心思想:将如下算法,时间复杂度是O(n^2)for(i = 0;i < n;i++) for(j = 0;j < n;j++)优化到O(n)(三

2022-01-10 10:31:26 350

原创 第k个数+逆序对+三次方根

三级目录三级目录三级目录

2022-01-08 13:38:58 565

原创 第一章 基础算法(二)高精度、前缀和、差分

1. 高精度1. 三类高精度问题:(1) 大整数A + 大整数B;(2)大整数A - 大整数B;(3)大整数A * 小正数a;(4)A/b2. 大整数的位数:小于 10 ^ 6;小整数的大小:小于 10000。3. 大整数如何存储:存储在数组中,数组的每一位存一位数字,数组的第0位存大整数的个位期中用到的c++知识:vector在 c++ 中,vector 是一个十分有用的容器。它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压

2022-01-03 18:39:12 539

原创 xshell连接不上虚拟机

https://blog.csdn.net/qq_43825377/article/details/115268962?spm=1001.2014.3001.5501

2021-11-16 22:09:16 229

原创 2021-09-01 在new servlet 时,Create Java EE 6 annotated class无法取消勾选

点击左下方的?查看帮助。Create Java EE 6 annotated class 这一部分翻译如下:如果未选中该复选框,则servlet名称-类映射将添加到web.xml。如果选中该复选框,新的servlet类将被@WebServlet注释,并且不会对web.xml进行任何更改。如果项目中没有web.xml,则默认情况下选中该复选框,并且不能取消选中它。【解决方法】File------->Project Structure-------->facets-------将We.

2021-09-01 21:25:29 598 1

原创 第一章 基础算法(一)快排、归并、二分

1. 排序1.1 快速排序 —— 分治(一)步骤确定分界点 x :(1)q[ l ](2)q[ ( l + r ) / 2 ](3)q[ r ](4)随机[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6aD4JIK7-1630485387682)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20210807215202118.png)]调整区间 :保证区间左边的数小于等于

2021-09-01 18:16:47 181 1

原创 JAVA基础 继承

1.继承1.1 继承的格式public class 子类名 extends 父类名{}1.2 示例public class Fu{ public void show (){ System.out.println("show 方法被调用"); }}public class Zi extends Fu{ public void method(){ System.out.println("method 方法被调用"); }}public class Demo{ public

2021-07-16 21:03:27 45

原创 OS第七章 文件管理

29、文件系统概述与逻辑结构(一)1.从文件字符流如何映射到盘块号。(二)1.由字符序列组成,文件内的信息不再划分结构,这类文件属于( 流式文件 )。2.下列哪一个文件和其它三种文件在逻辑结构上根本不同( B )A. 库函数文件B. 数据库文件C. 可执行程序文件D. 源程序文件3.逻辑文件存放在磁带上应组织成( 顺序文件 )。4.有一个顺序文件含有10000个记录,同样记录的索引顺序文件的检索效率大约是该顺序文件检索效率的( 50倍 ) 。5.文件信息的逻辑块号到物理块号

2021-07-08 10:02:48 1175

原创 第一~四章节小点总结

1.const修饰符(1)定义符号常量,常量在程序执行期间不可改变。const float PI = 3.14; // 定义时赋值(2)const char* pc = s; // 指针所指向的字符串为常量char *const cp=s; // 将指针本身说明为常量2.带缺省参数的函数如果给某个参数一个缺省值,那么其后的所有参数都需要赋给缺省值,否则编译时出错。void f ( int x,int y,int r=10,int c) ; // 错误3.函数重载只有返回类型

2021-07-05 00:39:01 152

原创 分离路径………………

// #include <iostream>#include<string>using namespace std;void filename(const string & str){ int found=str.find_last_of("/\\"); cout<<str.substr(0,found)<<endl; cout<<str.substr(found+1)<<endl;}int main

2021-07-04 23:50:26 42

原创 第八章多态性和虚函数

判断题1.虚函数是用virtual 关键字说明的成员函数。(T)2.动态绑定是在运行时选定调用的成员函数的。(T)3.构造函数可以声明为虚函数。(F)4.构造函数可以声明为纯虚函数。(F)5.虚函数不能是类的静态成员。(T)6.重定义虚函数的派生类必须是公有继承的。(T)7.作为虚函数隐含参数的this指针,决定了虚函数调用时执行的代码。(T)选择题1.关于纯虚函数和抽象类的描述中,( )是错误的。(C)A.纯虚函数是一种特殊的虚函数,它没有具体的实现B.抽象类是指具有纯虚函数的类C

2021-07-04 20:06:11 892

原创 第七章 运算符重载

判断题1.对每个可重载的运算符来讲,它既可以重载为友元函数,又可以重载为成员函数,还可以重载为非成员函数。(F)2.对单目运算符重载为友元函数时,可以说明一个形参。而重载为成员函数时,不能显式说明形参。(T)3.重载operator+时,返回值的类型应当与形参类型一致。 比如以下程序中,operator+的返回值类型有错:(F)class A {int x;public:A(int t=0):x(t){ }int operator+(const A& a1){ return

2021-07-04 16:32:50 1603

原创 第六章 继承性:派生类

判断题(部分)2.在protected保护继承中,对于垂直访问等同于公有继承,对于水平访问等同于私有继承。(T)选择题1.一个类的私有成员(B)A.只能被该类的成员函数访问B.只能被该类的成员函数和友元函数访问C.只能被该类的成员函数、友元函数和派生类访问D.以上答案都不对3.在公有继承的情况下,在派生类中能够访问的基类成员包括(D)A.公有成员B.保护成员C.公有成员、保护成员和私有成员D.公有成员和保护成员6.假设在公有派生情况下,以下说法不正确的是(C)A.可以将基类对象

2021-07-04 10:31:36 1988

原创 第五章 堆与复制构造函数

选择题(部分)3.下列函数中,( )不能重载。(C)A.成员函数B.非成员函数C.析构函数D.构造函数8.下列关于类的构造函数的描述中,错误的是(D)A.类的构造函数可以重载B.类可以没有构造函数C.类的构造函数可以缺省D.类的构造函数可以作为其它类型向本类类型进行转换的函数1.设A为自定义类,现有普通函数int fun(A& x)。则在该函数被调用时:(C)//***A.将执行复制构造函数来初始化形参xB.仅在实参为常量时,才会执行复制构造函数以初始化形参xC.无需

2021-07-04 00:41:11 1067

原创 第十二章 异常处理

判断题1.If you are not interested in the contents of an exception object, the catch block parameter may be omitted.(T)如果您对异常对象的内容不感兴趣,可以省略catch block参数。2.catch (type p) acts very much like a parameter in a function. Once the exception is caught, you can ac

2021-07-03 21:30:55 2283

原创 第十章 标准模板库STL

第十章 标准模板库STL因为是在复习时重写的,无法在PTA上验证,编程题格式可能有误。判断题1.可以通过下标随机访问向量vector中的元素。(T)2.当向量对象的内存用完之后,就会产生越界错误。(F)选择题1.若有下面的语句:vector<int> v;for (int i = 0; i < 4; i++) v.push_back(i + 1);cout << v.size() << endl;则执行后程序的输出结果是(D)A.1

2021-07-03 18:33:04 506

空空如也

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

TA关注的人

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