自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq1922631820的博客

在读研究生,正在开发项目,做一些学习笔记。GitHub笔记:https://github.com/Passion-long/Passion-long.github.io

  • 博客(287)
  • 收藏
  • 关注

原创 Java深搜和广搜

/ 表示点j已经被遍历过。// st[u] 表示点u已经被遍历过。(2) 宽度优先遍历 —— 模板题 AcWing 847. 图中点的层次。(1) 深度优先遍历 —— 模板题 AcWing 846. 树的重心。// 表示1号点已经被遍历过。

2024-03-31 13:04:29 150

原创 Java使用数组实现栈、队列、堆

/ ******************** 堆(完全二叉树)// ******************** 队列。// ******************** 栈。int stk[N], tt//tt是下标;// 在队尾插入元素,在队头弹出元素。// 判断队列是否为空。// 判断栈是否为空。

2024-03-30 22:57:10 188

原创 Java双指针算法

输入:abc def ghi。

2024-03-23 17:17:20 215

原创 Java前缀和

/ 定义初始和结束位置。int n = 10;

2024-03-23 09:38:40 139

原创 Java二分查找模板

/检查x是否满足某种性质。

2024-03-23 00:05:09 140

原创 Java归并排序模板

i < 1000;i++) {i < 1000;i++) {} else {i <= r;

2024-03-22 23:24:25 225

原创 Java快速排序模板

i < 1000;i++) {i < 1000;i++) {do i++;do j--;q[j] = t;

2024-03-22 22:32:05 182

原创 力扣【518】零钱兑换II

题目:给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。示例 1:输入: amount = 5, coins = [1, 2, 5]输出: 4解释: 有四种方式可以凑成总金额:5=55=2+2+15=2+1+1+15=1+1+1+1+1示例 2:输入: amount = 3, coins = [2]输出: 0解释: 只用面额2的硬币不能凑成总金额3。示例 3:输入: amount = 10, coins =..

2021-05-26 15:39:48 202

原创 力扣【377】组合总和 Ⅳ

题目:给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。题目数据保证答案符合 32 位整数范围。示例 1:输入:nums = [1,2,3], target = 4输出:7解释:所有可能的组合为:(1, 1, 1, 1)(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1)请注意,顺序不同的序列被视作不同的组合。示例 2:输入.

2021-05-25 23:17:52 210

原创 力扣【322】零钱兑换

题目:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。你可以认为每种硬币的数量是无限的。示例1:输入:coins = [1, 2, 5], amount = 11输出:3解释:11 = 5 + 5 + 1示例 2:输入:coins = [2], amount = 3输出:-1示例 3:输入:coins = [1], amount = 0输出:0示...

2021-05-25 16:51:57 185

原创 力扣【494】目标和

题目:给你一个整数数组 nums 和一个整数 target 。向数组中的每个整数前添加'+' 或 '-' ,然后串联起所有整数,可以构造一个 表达式 :例如,nums = [2, 1] ,可以在 2 之前添加 '+' ,在 1 之前添加 '-' ,然后串联起来得到表达式 "+2-1" 。返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。示例 1:输入:nums = [1,1,1,1,1], target = 3输出:5解释:一共有 5 种方法让..

2021-05-21 17:07:44 300

原创 力扣【416】分割等和子集

题目:给你一个 只包含正整数 的 非空 数组nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。示例 1:输入:nums = [1,5,11,5]输出:true解释:数组可以分割成 [1, 5, 5] 和 [11] 。示例 2:输入:nums = [1,2,3,5]输出:false解释:数组不能分割成两个元素和相等的子集。题解:(快速对齐快捷键:Ctrl + Alt + L)01背包问题——能不能装满容量为target的背包本..

2021-05-19 22:03:19 186

原创 力扣【300】最长递增子序列

题目:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,0,3,2,3]输出:4示例 3:输入:nums = [7,.

2021-05-16 22:05:23 98

原创 力扣【279】完全平方数

题目:给定正整数n,找到若干个完全平方数(比如1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。给你一个整数 n ,返回和为 n 的完全平方数的最少数量 。完全平方数是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。示例1:输入:n = 12输出:3解释:12 = 4 + 4 + 4示例 2:输入:n = 13输出:2解释:1...

2021-05-16 11:21:33 180

原创 力扣【236】二叉树的最近公共祖先

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

2021-05-14 18:06:30 146 1

原创 力扣【207】课程表

题目:你这个学期必须选修 numCourses 门课程,记为0到numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组prerequisites 给出,其中prerequisites[i] = [ai, bi] ,表示如果要学习课程ai 则 必须 先学习课程bi 。例如,先修课程对[0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。请你判断是否可能完成所有课程的学习?如果可以,返回 true ;否则,返回 false 。示例...

2021-05-11 16:56:11 147

原创 力扣【394】字符串解码

题目:给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像3a或2[4]的输入。示例 1:输入:s = "3[a]2[bc]"输出:"aaabcbc"示...

2021-05-09 15:30:42 142

原创 力扣【121】买卖股票的最佳时机

题目:给定一个数组 prices ,它的第i 个元素prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。...

2021-05-09 14:30:10 57

原创 力扣【139】单词拆分

题目:给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。示例 2:输入: s = "applepenapple", word.

2021-05-08 23:34:47 353

原创 力扣【85】最大矩形

题目:给定一个仅包含0和1、大小为rows x cols的二维二进制矩阵,找出只包含1的最大矩形,并返回其面积。示例 1:输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]输出:6解释:最大矩形如上图所示。题解:...

2021-05-08 18:21:20 174

原创 力扣【128】最长连续序列

题目:给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。进阶:你可以设计并实现时间复杂度为O(n) 的解决方案吗?示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2:输入:nums = [0,3,7,2,5,8,4,6,0,1]输出:9题解:import java.util.*;class Solution { .

2021-05-04 20:28:07 151 1

原创 牛客网SQL语句试题

1.SELECT *FROM employeesORDER BY hire_date DESC, emp_no DESCLIMIT 1;2.select * from employeeswhere hire_date = (-- 注意这里是() select distinct hire_date from employees order by hire_date desc limit 2,1 -- LIMIT m,n : 表示从第m+1条开始,取...

2021-03-26 20:13:54 195

原创 操作系统面试知识点

来自公众号:Java面试那点事1. 什么是僵尸进程? 什么是孤儿进程? 有什么危害?僵尸进程:一个进程使用 fork 创建子进程, 如果子进程退出, 而父进程并没有调用 wait 或者waitpid 获取子进程的状态信息, 那么子进程的进程描述符等一系列信息还会保存在系统中。 这种进程称之为僵尸进程。“僵尸” 进程是一个早已死亡的进程, 但在进程表( processs table) 中仍占了一个位置(slot) 。 由于进程表的容量是有限的, 所以, defunct 进程不仅占用系统的内存资

2021-03-25 23:22:00 189

原创 数据库面试知识点

来自公众号:Java面试那点事1. 什么是超键? 什么是主键? 二者有什么关系?超键: 在关系中能唯一标识元组的属性集称为关系模式的超键。 一个属性可以为作为一个超键, 多个属性组合在一起也可以作为一个超键。 超键包含候选键和主键。候选键: 最小超键, 即没有冗余元素的超键。主键: 数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。 一个数据列只能有一个主键, 且主键的取值不能缺失, 即不能为空值(Null) 。只能能唯一标识元组的属性集就是超键, 所以, 超键不唯一, 并且,

2021-03-25 23:20:14 247

原创 计算机网络面试知识点

来自公众号:Java面试那点事1. OSI 七层模型? HTTP 协议对应第几层? IP 协议呢?物理层: 通过媒介传输比特, 确定机械及电气规范(比特 Bit)数据链路层: 将比特组装成帧和点到点的传递(帧 Frame)网络层: 负责数据包从源到宿的传递和网际互连(包 Packet)传输层: 提供端到端的可靠报文传递和错误恢复(段 Segment)会话层: 建立、 管理和终止会话(会话协议数据单元 SPDU)表示层: 对数据进行翻译、 加密和压缩(表示协议数据单元 PPDU)应用层: 允

2021-03-25 20:25:21 273

原创 红黑树和B树和B+树

首先B树和B+树的区别:https://blog.csdn.net/zhuanzhe117/article/details/78039692https://my.oschina.net/u/4116286/blog/3107389B树的定义:根节点的关键字数量范围:1 <= k <= m-1,非根节点的关键字数量范围:m/2 <= k <= m-1。 每个节点中的关键字都按照从小到大的顺序排列,每个关键字的左子树中的所有关键字都小于它,而右子树中的所有关键字都大于它

2021-03-22 17:30:17 1560

转载 KMP算法和Boyer-Moore算法

两种最快的字符串匹配算法

2021-03-22 10:25:06 127

原创 力扣【225】用队列实现栈

题目:请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通队列的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。题解:package test;import java.util.LinkedList;import

2021-03-11 21:02:51 89

原创 力扣【51】N皇后

题目:n皇后问题 研究的是如何将 n个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的n皇后问题 的解决方案。每一种解法包含一个不同的n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例 1:输入:n = 4输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]解释:如上图所示,4 皇后问题存在两个不同的解法。示例...

2021-02-24 15:54:13 144

原创 力扣【438】找到字符串中所有字母异位词

题目:给定一个字符串s和一个非空字符串p,找到s中所有是p的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串s和 p的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。不考虑答案输出的顺序。示例1:输入:s: "cbaebabacd" p: "abc"输出:[0, 6]解释:起始索引等于 0 的子串是 "cba", 它是 "abc" 的字母异位词。起始索引等于 6 的子串是 "bac", 它是...

2021-02-24 09:54:29 136

原创 力扣【437】路径总和 III

题目:给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8 10 / \ 5 -3 / \ \ 3 2 ...

2021-02-23 19:19:01 176

原创 力扣【460】根据身高重建队列

题目:假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。请你重新构造并返回输入数组people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。示例 1:输入:people = [[7,..

2021-02-23 15:41:49 81

原创 力扣【347】前 K 个高频元素

题目:给定一个非空的整数数组,返回其中出现频率前k高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]题解:使用HashMap小知识:快速对齐快捷键是Ctrl+Alt+Limport java.util.*;//快速对齐快捷键是Ctrl+Alt+Lclass Solution { public int[] topKFrequent(in...

2021-02-23 10:58:35 94 1

原创 力扣【338】比特位计数

题目:给定一个非负整数num。对于0 ≤ i ≤ num 范围中的每个数字i,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例2:输入: 5输出: [0,1,1,2,1,2]题解:就是计算二进制中1的个数import java.util.*;class Solution { public int[] countBits(int num) { int[] res = new int[num +...

2021-02-23 09:48:27 83

原创 力扣【240】搜索二维矩阵 II

题目:编写一个高效的算法来搜索mxn矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例 1:输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5输出:true题解:这个人的思路可以的:import java.util.*;clas...

2021-02-22 22:50:54 125

原创 力扣【238】除自身以外数组的乘积

题目:给你一个长度为n的整数数组nums,其中n > 1,返回输出数组output,其中 output[i]等于nums中除nums[i]之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]题解:方法一:乘积 = 当前数左边的乘积 * 当前数右边的乘积import java.util.*;class Solution { public int[] productExceptSelf(int[] nums...

2021-02-22 22:10:29 121

原创 力扣【581】最短无序连续子数组

题目:给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的 最短 子数组,并输出它的长度。示例 1:输入:nums = [2,6,4,8,10,9,15]输出:5解释:你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。示例 2:输入:nums = [1,2,3,4]输出:0示例 3:输入:nums = [1]输出:0题解:直接用排序,然.

2021-02-22 19:35:58 103

原创 力扣【647】回文子串

题目:给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:"abc"输出:3解释:三个回文子串: "a", "b", "c"示例 2:输入:"aaa"输出:6解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa"题解:中心扩展法:这是一个比较巧妙的方法,实质的思路和动态规划的思路类似。比如对一个字符串 ababa,选择最中间.

2021-02-22 17:44:16 120

原创 力扣【739】每日温度

题目:请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用0 来代替。例如,给定一个列表temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是[1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是[1, 30000]。每个气温的值的均为华氏度,都是在[30, 100]范围内的整数。题解:import jav...

2021-02-22 16:32:54 87

原创 力扣【560】和为k的子数组

题目:给定一个整数数组和一个整数k,你需要找到该数组中和为k的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。题解:暴力一:O(N2)class Solution { public int subarraySum(int[] nums, int k) { int count = 0; for (int start = 0; start &lt...

2021-02-22 12:03:54 87

空空如也

空空如也

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

TA关注的人

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