自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Git切换用户;Git提交之后是别人的用户怎么办?

前几天在入职之后,公司的电脑上仍然储存了之前用户的信息,比如git。我在创建分支、提交代码的时候会遇到这样的问题:登录的是我自己的账号,但是在git动态里缺显示的是其他人的头像。

2023-05-22 13:30:20 3265

原创 LeetCode198,LeetCode213打家劫舍1/2

动态规划解力扣198,213打家劫舍

2023-03-28 20:22:45 272

原创 软件工程SQL练习

SQL语句练习

2022-09-20 15:15:48 2642

原创 LeetCode-2两数相加

题目信息:两数相加 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]思路:就像和小学计算加法一样,先加个位在看

2022-06-25 14:35:22 353 1

原创 LeetCode3. 无重复字符的最长子串

题目信息给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串

2022-06-25 14:35:07 130 2

原创 排序子序列

题目链接:https://www.nowcoder.com/questionTerminal/2d3f6ddd82da445d804c95db22dcc471来源:牛客网牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列.如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出

2022-06-25 14:34:47 146 1

原创 移除元素LeetCode_27

题目信息给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于val的元素并返回移除后数组的新长度。不要使用额外的数组空间你必须仅使用O(1)额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 样例1:输入:nums = [3,2,2,3], val = 3输出:2, nums = [2,2]解释:函数应该返回新的长度 2,并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度

2022-06-25 14:34:25 135

原创 删除有序数组中的重复项LeetCode26双指针法解决

题目信息给你一个有序数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次 返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。样例1:输入:nums = [1,1,2]输出:2, nums = [1,2]解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。样例2:输入:nums = [0,0,1,1,1,2,2,3,3,4]输出

2022-06-25 14:34:20 703

原创 在排序数组中查找元素的第一个和最后一个位置二分解决LeetCode_34

题目信息给定一个按照升序排列的整数数组 nums,和一个目标值 target找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例 2:输入:nums = [5,7,7,8,8,10], target = 6输出:[-1,-1]示例 3:输入:nums = [], target = 0输出:[-1,-1]解法:

2022-06-25 14:34:02 258

原创 双指针思路简单易懂的LeetCode167. 两数之和 II - 输入有序数组

题目信息:给定一个已按照非递减顺序排列的整数数组 numbers,请你从数组中找出两个数满足相加之和等于目标数target 。函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标从1开始计数 ,所以答案数组应当满足 1 <= answer[0] < answer[1] <= numbers.length 。你可以假设每个输入 只对应唯一的答案 ,而且你 不可以 重复使用相同的元素。示例 1:输入:numbers = [2,7,11.

2022-06-25 14:33:50 360 1

原创 JDBC连接数据库插入中文数据乱码的几种情况和解决方式

可能乱码的几种情况大家通常用的编码格式都是utf8。我这里就用它举例子1、IDEA自身编码格式不是utf8解决方式:在IDEA中根据这个目录 File | Settings | Editor | File Encodings找到File Enconding检查这几个地方的字符集编码是不是uft8,如果不是就修改改过来。2、数据库编码不是utf8在数据库中用下面这个命令查看当前数据库的字符集编码,如果不是utf8就改过来。show variables like '%character%

2022-05-18 13:21:17 6684 4

原创 Java线程池是什么?模拟一个简单的Java线程池

一、 前言为了实现并发编程,于是就引入了进程这个概念。进程就相当于操作系统的一个任务。多个进程同时执行任务,就实现了并发编程,能够更快的执行。但是由于进程还不够轻量,创建一个进程,销毁一个进程消耗的资源不可忽视。如果进程数量不多的情况下,这些资源消耗是可以接受的,但是如果频繁的创建、销毁进程。就是一笔很大的开销了。那要怎么办呢?、为了解决这个问题,人们引入了更轻量的工具——线程。线程也被称为轻量级进程。它的创建、销毁比进程消耗的资源更少。但是如果任务数量很多,多线程也顶不住频繁的创建、销毁了呢

2022-03-27 20:21:54 2547 37

原创 动态规划转移方程看不懂?以集合的角度分析问题 最长上升子序列I讲解

前言动态规划这类问题一直是大家学习算法,平时练习中遇到的最难的问题之一。其中有一类问题是线性的,也叫他线性DP。今天我们一起来分析一下最长上升子序列I。题目信息给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。 注意:这里的子序列要求是严格单调递增的。例如 1,2,3,4。不能是1,1,2,3,4。 输入格式``第一行包含整数 N。第二行包含 N 个整数,表示完整序列。``输出格式输出一个整数,表示最大长度。数据范围本题数据范围:1≤N≤100000,

2022-03-21 17:46:13 301 14

原创 564. 寻找最近的回文数

题目信息给定一个表示整数的字符串 n ,返回与它最近的回文整数(不包括自身)。如果不止一个,返回较小的那个。“最近的”定义为两个整数差的绝对值最小。示例 1:输入: n = "123"输出: "121"示例 2:输入: n = "1"输出: "0"解释: 0 和 2是最近的回文,但我们返回最小的,也就是 0。思路更具体的思路见代码注释代码/** * 每一个数有五种可能的情况 假设这个数是 abcde 因为是回文数,所以只需要看前一半 * 1:

2022-03-02 13:31:53 399 11

原创 经典BFS问题之走迷宫

题目信息给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m) 处,至少需要移动多少次。数据保证 (1,1) 处和 (n,m) 处的数字为 0,且一定至少存在一条通路。输入格式第一行包含两个整数 n 和 m。输出格式接下来 n 行,每行包含 m 个整数(0 或 1),表示完整

2022-02-17 14:58:13 362 1

原创 KMP算法各种写法中,最简短易懂的一种

直接上代码import java.io.*;public class Main { static int N=100010; static int M=1000010; static int n=0; static int m=0; static char []p=new char[N]; static char []s=new char[M]; static int ne[]=new int[N]; public static

2022-01-26 17:18:47 315

原创 单调队列的应用:剑指 Offer 59 - II. 队列的最大值 双端队列(图文并茂)一步一步详细指导

目录题目信息样例示例 1:示例 2:限制条件思路:Step 1:Step 2:Step 3:Step 4:总结:代码实现题目信息请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1样例示例 1:输入: ["MaxQueue","push_back","push_back","max_value","po

2022-01-21 13:47:57 199 7

原创 LeetCode_33. 搜索旋转排序数组

目录题目信息样例思路代码题目信息整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。给你 旋转后

2022-01-19 21:16:43 455 12

原创 LeetCode 150. 逆波兰表达式求值

题目信息 要求给一个字符串数组,是后缀表达式,需要你转换成中缀表达式计算。解题思路将tokens数组放到一个树中,根据后序遍历利用一个栈来完成计算。实现代码class Solution { public int evalRPN(String[] tokens) { Stack<Integer> s=new Stack<> (); for (int i = 0 ; i <tokens.length ; i++) {

2022-01-15 01:51:30 4005

原创 《数据结构与算法》- 线性结构复习题 7-5 最大子列和问题 (10 分)

题目和力扣53题相同,动态规划解决 import java.util.*;public class Main{ public static int maxSubArray(int[] nums) { int res = nums[0]; for(int i = 1; i < nums.length; i++) { nums[i] += Math.max(nums[i - 1], 0); res = Mat

2021-12-22 19:59:29 521

原创 《数据结构与算法》- 线性结构复习题 7-4 两个有序链表序列的交集 (10 分)

用java做的,最后一组数据过不了,不知道为什么 public static void main (String[] args) { Scanner scanner=new Scanner (System.in); int tmp=0; LinkedList <Integer> list1=new LinkedList<> (); LinkedList<Integer> list2=new LinkedList<&

2021-12-22 19:37:46 649

原创 《数据结构与算法》- 线性结构复习题 6-1 有序数组的插入 (10 分)

分了几种情况,判满,x是表里最大的数,X是最小的数,x和表里某个数相等了,x在中间。AC代码:bool Insert( List L, ElementType X ){ //判满 if(L->Last+1==MAXSIZE){ return false; } //x最大 if(L->Data[0]<X){ for(int i=L->Last;i>=0;i--){

2021-12-22 13:48:37 702

原创 LeetCode 59. 螺旋矩阵 II

题目信息解析:和54题是一样的,只不过要求变了一下,换汤不换药。具体逻辑看54题的题解。文章链接实现代码: public int[][] generateMatrix(int n) { int res[][]=new int[n][n]; boolean[][]used=new boolean[n][n]; int dx[]={0,1,0,-1}; int dy[]={1,0,-1,0}; for(int i=1,x=0,y=0,d=0

2021-11-23 11:10:34 357 1

原创 螺旋矩阵LeetCode_54

题目信息提示:m == matrix.lengthn == matrix[i].length1 <= m, n <= 10-100 <= matrix[i][j] <= 100解题思路:螺旋矩阵的顺序是下图这样的,可以根据x,y轴的1或者0来判断此时矩阵的方向是什么。可以定义一个布尔数组,大小和题目数组一样,如果走过了就将false改为ture,代表走过了。在走到下一个坐标前需要判断坐标是否合法。是否合法取决于方向是不是正确,有没有超过数组大小,有没有用过。如

2021-11-23 09:57:36 233

原创 水果成篮,双指针图文并茂LeetCode_904

题目信息示例 1:输入:[1,2,1]输出:3解释:我们可以收集 [1,2,1]。示例 2:输入:[0,1,2,2]输出:3解释:我们可以收集 [1,2,2]如果我们从第一棵树开始,我们将只能收集到 [0, 1]。示例 3:输入:[1,2,3,2,2]输出:4解释:我们可以收集 [2,3,2,2]如果我们从第一棵树开始,我们将只能收集到 [1, 2]。示例 4:输入:[3,3,3,1,2,1,1,2,3,3,4]输出:5解释:我们可以收集 [1,2,

2021-11-22 10:05:58 415

原创 长度最小的子数组 典型双指针LeetCode_209

题目信息给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target的长度最小的连续子数组[numsl,numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。示例 2:输入:target = 4, nums = [1,4,4]

2021-11-22 08:07:24 145 5

原创 搜索插入位置LeetCode_35

题目信息给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。 ...

2021-11-20 21:13:22 342 1

原创 HTML常见标签及个人简历制作

一、前言1、 HTML代码都是由各种各样的标签构成的。2、HTML代码基础结构<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, i

2021-11-18 12:29:15 6323 24

原创 LeetCode20. 有效的括号。找对象的故事

题目信息给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例1:输入:s = "()"输出:true示例2:输入:s = "()[]{}"输出:true示例3:输入:s = "(]"输出:false示例4:输入:s = "([)]"输出:false解题思路题目的意思我给大家翻译翻译:把括号之间的匹配想象成找对象,左括号

2021-11-17 08:26:32 597 17

原创 JavaEE之多线程基础(1):进程、线程初识。创建线程的5种方式

????一、认识进程、线程????1.1什么是进程进程process/task.“进程"是计算机完成一个工作的"过程”设备上一个正在运行的程序,就是一个进程。比如你打开的QQ就是一个进程,正在和别人聊天的微信也是一个进程。进程是系统进行资源分配的基本单位。当我们打开任务管理器就可以看到,当前操作系统中正在运行的进程。要想让一个进程真正的运行起来,就需要给这个进程分配一定的系统硬件资源。这些资源都包括:CPU:例如我电脑中任务管理器占用了11%的CPU,QQ占用0.3%。内存:任务管理器占

2021-10-28 11:48:57 880 15

原创 MYSQL JDBC图书管理系统

JDBC编程一、JDBC简介二、准备工作三、JDBC五毒神掌3.1导入驱动包,创建DataBase实例四、加入SQL版的数据库4.1系统功能汇总4.2 数据库准备4.3构造和数据库相关的实体类一、JDBC简介即Java Database Connectivity,Java和数据库链接。是一种可以执行SQL语句的API。JDBC 是一种规范,它提供了一套完整的接口,允许便携式访问到底层数据库,因此可以用 Java 编写不同类型的可执行文件二、准备工作工欲善其事必先利其器,在开始MYSQL JDBC

2021-10-10 15:23:25 8395 35

原创 Java中对象的比较

一:问题引出在使用优先级队列(堆)的时候,优先级队列对插入的元素要求必须是可以互相进行比较的元素,并且不能是null。那么怎么比较自定义类的对象呢?文章目录一:问题引出二:Java中比较的几种方式2.1 在Java中基本类型可以直接进行比较2.2 对象的比较1.引入从结果中可以看出Java中引用类型的比较不能直接按照‘<’,’>’比较。编译器会报错,那为什么‘==’可以呢?因为对于自定义的类型,都默认的继承了Object类,而Object类中提供了equal方法,而‘==’默认情况下

2021-10-06 20:05:00 1473 23

原创 数据结构之顺序表

数据结构之顺序表一、单链表的引出1->静态顺序表代码实现2->动态顺序表代码实现二、动态顺序表的9种方法(函数)2.1、 新增元素2.2 、判断当前顺序表是否已满2.3 、扩容2.4 、判断是否包含某个元素2.5、 查找某个元素对应的位置2.6 、获取 pos 位置的元素2.7、 获取顺序表长度2.8、 给 pos 位置的元素设为 value2.9 、删除第一次出现的关键字key三、结尾一、单链表的引出在学习单链表之前,我们先了解数据结构中其他的表。1.1 线性表:线性表(linear

2021-09-30 16:52:30 1169 13

原创 数据结构之单链表

单链表详解一、前言二、什么是链表?2.1、链表的概念:2.2、两种重要的单链表2.3、关于单链表的一些基础知识三、单链表的实现3.1、穷举法创建一个简单的链表3.2、遍历链表3.3、得到链表的长度3.4、头插法3.5、尾插法3.6、 任意位置插入节点3.7、查找是否包含关键字key是否在单链表当中3.8、删除所有节点3.9、删除第一次出现关键字为key的节点3.10、删除所有值为key的节点四、LeetCode和剑指Offer上的单链表面试题五、其他练习题一、前言在上篇文章中,我们详细的讲解了顺序表,

2021-09-26 18:18:03 22096 47

原创 ❤️剑指Offer_10.斐波那契数列 动态规划 LeetCode双百缪莎❤️

⭐欢迎来到剑指offer好题精选专栏,一起学习,一起进步⭐ 题目信息:写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。示例1:输入:n = 2输出:1示例2:输入:n = 5输出:5解题思路:动态规划,设d.

2021-09-22 22:21:44 461 1

原创 ❤️是你的期末大作业吗?Java基础语法就能实现的图书管理系统 ❤️

图书管理系统一、简介一、简介在学习了Java语法的类、接口、继承、多态、接口等基础语法后的一简单的项目练习。具体功能为:1、简单的根据姓名的登录2、管理员端:其功能为,查阅书籍、增加书籍、删除书籍、打印书籍。3、普通用户端:查阅书籍、借阅书籍、归还书籍...

2021-09-22 16:09:51 23493 102

原创 剑指Offer_31.栈的压入、弹出序列

⭐欢迎来到剑指offer好题精选专栏,一起学习,一起进步⭐ 题目信息:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。提示:0 <= pushed.length == popped.length <= 10000 <= pushed[.

2021-09-18 08:38:53 426 10

原创 数据结构之栈

⭐欢迎来到数据结构专栏,一起学习,一起进步⭐⭐文章目录:一、栈是什么?二、栈在集合框架中的联系2.1、初次使用Stack栈的方法2.2、 栈的push方法2.3、 栈的pop方法2.4、 栈的peek方法2.5 栈的empty方法2.6 查找元素一、栈是什么?栈是一种特殊的线性表,它只允许在固定的一端进行插入和删除。并把这一端叫栈顶,另一端叫做栈底。栈中元素的进、出遵循先进后出的原则。不了解线性表是同学可以看看我之前写的线性表的文章,链接放到下方:线性表及顺序表讲解+手撕代码说到这里可.

2021-09-17 17:09:24 5494 62

原创 剑指Offer-07 重建二叉树的两种方法

⭐欢迎来到剑指offer好题精选专栏,一起学习,一起进步⭐ 题目信息:给定某二叉树的前序遍历和中序遍历,请重建出该二叉树并返回它的头结点。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示。提示:1.0 <= pre.length <= 20002.vin.length == pre.length3.-10000 <= pre[i], vin[i] <= 100004.pre 和 vin.

2021-09-16 22:07:54 271 24

原创 剑指Offer_06 从头到尾打印链表两种方法任你挑选

⭐欢迎来到剑指offer好题精选专栏,一起学习,一起进步⭐ 题目信息:输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。如输入{1,2,3}的链表如下图:返回一个数组为[3,2,1]0 <= 链表长度 <= 10000示例1:输入:{1,2,3}返回值:[3,2,1]示例2:输入:{67,0,24,58}返回值:[58,24,0,67]解题思路:1、申请一个栈Stack,一个引用节点cur,遍历链表,如果cur不为空,就将cu.

2021-09-15 20:11:43 447 27

空空如也

空空如也

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

TA关注的人

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