
JAVA
文章平均质量分 55
文艺范ya
慢慢来吧,谁都有努力的过程
展开
-
Java基础面经汇总
Java面经原创 2022-08-01 22:30:08 · 910 阅读 · 0 评论 -
SpringBoot面经总结
SpringBoot原创 2022-08-03 16:52:48 · 519 阅读 · 1 评论 -
寻找链表的中间节点
链表中间节点原创 2022-07-24 23:26:14 · 591 阅读 · 0 评论 -
设计模式面经
设计模式原创 2022-07-15 21:18:40 · 592 阅读 · 0 评论 -
SpringMVC面经
SpringMVC原创 2022-06-27 16:17:14 · 253 阅读 · 0 评论 -
Spring面经
Spring原创 2022-06-26 20:14:11 · 1470 阅读 · 0 评论 -
JUC面经
JUC原创 2022-06-21 22:37:52 · 372 阅读 · 0 评论 -
JVM面经
JVM原创 2022-06-11 18:44:49 · 390 阅读 · 0 评论 -
判断无向图是不是有环
使用并查集:如果找到两个节点的头节点一个的时候,就判断有环。剑指 Offer II 118. 多余的边树可以看成是一个连通且 无环 的 无向 图。给定往一棵 n 个节点 (节点值 1~n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 到 n 中间,且这条附加的边不属于树中已存在的边。图的信息记录于长度为 n 的二维数组 edges ,edges[i] = [ai, bi] 表示图中在 ai 和 bi 之间存在一条边。请找出一条可以删去的边,删除后可使得剩余部分是一个有着 n 个节点的树。如原创 2022-04-18 15:01:07 · 1395 阅读 · 0 评论 -
判断有向图是否存在环——拓扑排序
课程表你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。请你判断是否可能完成所有课程的学习?如果可以,返回 true ;否则,返回 false 。示例 1:输入:原创 2022-04-17 13:02:16 · 828 阅读 · 0 评论 -
图的构建方式
左神的模板:图:package class06;import java.util.HashMap;import java.util.HashSet;public class Graph { public HashMap<Integer,Node> nodes;//点集:键是点的编号,值是具体的每一个点 public HashSet<Edge> edges;//边集 public Graph() { nodes = new HashMap<>();转载 2021-03-27 11:57:36 · 603 阅读 · 0 评论 -
SpringBoot JDK15 集成Swagger
依赖: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.6.6</version> &l原创 2022-04-13 20:57:25 · 571 阅读 · 0 评论 -
Mybatis-Plus 代码自动生成器
package com.kuang;import com.baomidou.mybatisplus.annotation.FieldFill;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.generator.AutoGenerator;import com.baomidou原创 2022-04-12 17:16:08 · 467 阅读 · 0 评论 -
JAVASpring配置
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http:原创 2022-03-03 16:14:20 · 161 阅读 · 0 评论 -
字符串中不同整数的数目(去除前导零)
题目描述:给你一个字符串 word ,该字符串由数字和小写英文字母组成。请你用空格替换每个不是数字的字符。例如,“a123bc34d8ef34” 将会变成 " 123 34 8 34" 。注意,剩下的这些整数为(相邻彼此至少有一个空格隔开):“123”、“34”、“8” 和 “34” 。返回对 word 完成替换后形成的 不同 整数的数目。只有当两个整数的不含前导零的十进制表示不同, 才认为这两个整数也不同。示例 1:输入:word = “a123bc34d8ef34”输出:3解释:不同原创 2021-12-01 09:48:56 · 340 阅读 · 0 评论 -
注解和反射笔记
注解注解是JDK5.0开始引入的新技术;注解的作用是:不是程序本身,可以对程序做出解释可以被其他程序读取注解的格式是:注解是以"@注释名"在代码中存在的,还可以添加一些参数注解可以在什么地方使用:可以附加在package,class,method,field等上面,相当于给他们添加了额外的辅助信息,我们可以通过反射机制编程,实现对这些元数据的访问。元注解的作用:负责注解其他注解,JAVA定义了4个标准的meta-annotation类型,他们被用来提供对其他注解类型进行说明。转载 2021-06-24 17:14:07 · 138 阅读 · 0 评论 -
Java的Static关键字的用法
概述:静态Static关键字修饰成员变量:如果一个成员变量使用了static关键字,那么这个变量不再属于对象自己,而是属于所在的类,多个对象共享同一份数据。package demopacket;public class Solution { public static void main(String[] args) { Student student1 = new Student("张三", 19); Student student2 = new St原创 2021-06-17 14:00:53 · 202 阅读 · 0 评论 -
LeetCode——1109. 航班预订统计
题目描述:这里有 n 个航班,它们分别从 1 到 n 进行编号。有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [firsti, lasti, seatsi] 意味着在从 firsti 到 lasti (包含 firsti 和 lasti )的 每个航班 上预订了 seatsi 个座位。请你返回一个长度为 n 的数组 answer,其中 answer[i] 是航班 i 上预订的座位总数。示例 1:输入:bookings = [[1,2,10],[2,3,2原创 2021-05-14 17:14:53 · 183 阅读 · 0 评论 -
LeetCode——1854. 人口最多的年份
题目描述:给你一个二维整数数组 logs ,其中每个 logs[i] = [birthi, deathi] 表示第 i 个人的出生和死亡年份。年份 x 的 人口 定义为这一年期间活着的人的数目。第 i 个人被计入年份 x 的人口需要满足:x 在闭区间 [birthi, deathi - 1] 内。注意,人不应当计入他们死亡当年的人口中。返回 人口最多 且 最早 的年份。示例 1:输入:logs = [[1993,1999],[2000,2010]]输出:1993解释:人口最多为 1 ,而 19原创 2021-05-14 16:33:29 · 227 阅读 · 0 评论 -
LeetCode——554. 砖墙
题目描述:你的面前有一堵矩形的、由 n 行砖块组成的砖墙。这些砖块高度相同(也就是一个单位高)但是宽度不同。每一行砖块的宽度之和应该相等。你现在要画一条自顶向下的、穿过最少砖块的垂线。如果你画的线只是从砖块的边缘经过,就不算穿过这块砖。你不能沿着墙的两个垂直边缘之一画线,这样显然是没有穿过一块砖的。给你一个二维数组 wall ,该数组包含这堵墙的相关信息。其中,wall[i] 是一个代表从左至右每块砖的宽度的数组。你需要找出怎样画才能使这条线穿过的砖块数量最少 ,并且返回穿过的砖块数量 。示例 1:原创 2021-05-02 10:04:26 · 243 阅读 · 1 评论 -
JDBC
JDBC介绍JDBC(Java DataBase Connectivity)是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。它由一组用Java语言编写的类和接口组成。各种不同类型的数据库都有相应的实现,本文中的代码都是针对MySQL数据库实现的。固定的执行步骤:package com.demo.connection;import java.sql.*;public class jdbcfirst { public static void main(St原创 2021-04-29 17:28:03 · 164 阅读 · 0 评论 -
LeetCode——386. 字典序排数
题目描述:给定一个整数 n, 返回从 1 到 n 的字典顺序。例如,给定 n =1 3,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] 。请尽可能的优化算法的时间复杂度和空间复杂度。 输入的数据 n 小于等于 5,000,000。代码如下:class Solution { public List<Integer> lexicalOrder(int n) { TreeMap<Integer, String> map = new T原创 2021-04-23 16:39:03 · 160 阅读 · 0 评论 -
LeetCode——1387. 将整数按权重排序
题目描述:我们将整数 x 的 权重 定义为按照下述规则将 x 变成 1 所需要的步数:如果 x 是偶数,那么 x = x / 2如果 x 是奇数,那么 x = 3 * x + 1比方说,x=3 的权重为 7 。因为 3 需要 7 步变成 1 (3 --> 10 --> 5 --> 16 --> 8 --> 4 --> 2 --> 1)。给你三个整数 lo, hi 和 k 。你的任务是将区间 [lo, hi] 之间的整数按照它们的权重 升序排序 ,如果大原创 2021-04-23 15:58:43 · 156 阅读 · 0 评论 -
LeetCode——368. 最大整除子集
题目描述:给你一个由 无重复 正整数组成的集合 nums ,请你找出并返回其中最大的整除子集 answer ,子集中每一元素对 (answer[i], answer[j]) 都应当满足:answer[i] % answer[j] == 0 或 answer[j] % answer[i] == 0。如果存在多个有效解子集,返回其中任何一个均可。示例 1:输入:nums = [1,2,3]输出:[1,2]解释:[1,3] 也会被视为正确答案。示例 2:输入:nums = [1,2,4原创 2021-04-23 14:59:44 · 151 阅读 · 0 评论 -
LeetCode——5736. 单线程 CPU
题目描述:给你一个二维数组 tasks ,用于表示 n 项从 0 到 n - 1 编号的任务。其中 tasks[i] = [enqueueTimei, processingTimei] 意味着第 i 项任务将会于 enqueueTimei 时进入任务队列,需要 processingTimei 的时长完成执行。现有一个单线程 CPU ,同一时间只能执行 最多一项 任务,该 CPU 将会按照下述方式运行:如果 CPU 空闲,且任务队列中没有需要执行的任务,则 CPU 保持原创 2021-04-18 13:49:28 · 503 阅读 · 0 评论 -
LeetCode——1302. 层数最深叶子节点的和
题目描述:给你一棵二叉树的根节点 root ,请你返回层数最深的叶子节点的和 。示例 1:输入:root = [1,2,3,4,5,null,6,7,null,null,null,null,8]输出:15示例 2:输入:root = [6,7,8,2,7,1,3,9,null,1,4,null,null,null,5]输出:19提示:树中节点数目在范围 [1, 104] 之间。1 <= Node.val <= 100dfs代码如下:/** * Definition原创 2021-04-16 09:40:03 · 250 阅读 · 1 评论 -
Java——GUI编程
组件:窗口,弹窗,面板,文本框,列表框,按钮,图片,监听事件,鼠标事件,键盘事件,破解工具。1、简介GUI(图形用户界面)的核心技术:Swing,AWT。不流行:界面不美观,需要jre环境。学习GUI:可以写一些小工具,维护swing的界面,了解MVC架构,了解监听。2、AWT(抽象的窗口工具)2.1、AWT介绍1.包含了很多类和接口2.元素:窗口,按钮,文本框3.java.awt...原创 2021-04-15 22:17:53 · 2958 阅读 · 1 评论 -
LeetCode——1414. 和为 K 的最少斐波那契数字数目
题目描述:给你数字 k ,请你返回和为 k 的斐波那契数字的最少数目,其中,每个斐波那契数字都可以被使用多次。斐波那契数字定义为:F1 = 1F2 = 1Fn = Fn-1 + Fn-2 , 其中 n > 2 。数据保证对于给定的 k ,一定能找到可行解。示例 1:输入:k = 7输出:2解释:斐波那契数字为:1,1,2,3,5,8,13,……对于 k = 7 ,我们可以得到 2 + 5 = 7 。示例 2:输入:k = 10输出:2解释:对于 k = 10 ,我们可以得原创 2021-04-15 15:35:47 · 209 阅读 · 0 评论 -
LeetCode——213. 打家劫舍 II
题目描述:你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,能够偷窃到的最高金额。示例 1:输入:nums = [2,3,2]输出:3解释:你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他原创 2021-04-15 11:46:14 · 148 阅读 · 0 评论 -
LeetCode——442. 数组中重复的数据
题目描述:给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。找到所有出现两次的元素。你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?示例:输入:[4,3,2,7,8,2,3,1]输出:[2,3]解题思路:1<=nums[i]<=n 且数组长度也是n,所以可以利用数组下标,将遍历到的nums[i]记录在第nums[i]个元素中。将第nums[i]个元素取相反数, 这是因为取相反数既保留了原来元素的信息(原创 2021-04-14 17:33:01 · 185 阅读 · 0 评论 -
LeetCode——24. 两两交换链表中的节点
题目描述:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]提示:链表中节点的数目在范围 [0, 100]0 <= Node.val <= 100代码如下:/** * Definition for singly-linked原创 2021-04-14 14:41:43 · 136 阅读 · 0 评论 -
LeetCode——543. 二叉树的直径
题目描述:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。注意:两结点之间的路径长度是以它们之间边的数目表示。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。代码如下:/** * Definition for a binary原创 2021-04-14 11:14:37 · 124 阅读 · 0 评论 -
LeetCode——648. 单词替换
题目描述:在英语中,我们有一个叫做 词根(root)的概念,它可以跟着其他一些词组成另一个较长的单词——我们称这个词为 继承词(successor)。例如,词根an,跟随着单词 other(其他),可以形成新的单词 another(另一个)。现在,给定一个由许多词根组成的词典和一个句子。你需要将句子中的所有继承词用词根替换掉。如果继承词有许多可以形成它的词根,则用最短的词根替换它。你需要输出替换之后的句子。示例 1:输入:dictionary = [“cat”,“bat”,“rat”], sent原创 2021-04-14 10:16:30 · 156 阅读 · 0 评论 -
LeetCode——538. 把二叉搜索树转换为累加树
题目描述:给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。示例 1:输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]输出:[30,36,21,36原创 2021-04-12 18:28:23 · 150 阅读 · 0 评论 -
LeetCode——424. 替换后的最长重复字符
题目描述:给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。注意:字符串长度 和 k 不会超过 104。示例 1:输入:s = “ABAB”, k = 2输出:4解释:用两个’A’替换为两个’B’,反之亦然。示例 2:输入:s = “AABABBA”, k = 1输出:4解释:将中间的一个’A’替换为’B’,字符串变为 “AABBBBA”。子串 “BBBB” 有最长重复字母, 答原创 2021-04-12 16:39:30 · 130 阅读 · 0 评论 -
LeetCode——1004. 最大连续1的个数 III
题目描述:给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。返回仅包含 1 的最长(连续)子数组的长度。示例 1:输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2输出:6解释:[1,1,1,0,0,1,1,1,1,1,1]粗体数字从 0 翻转到 1,最长的子数组长度为 6。示例 2:输入:A = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], K = 3输出:10解释:[0,0,1,1原创 2021-04-12 15:33:06 · 137 阅读 · 0 评论 -
最大数和最小数(排序)
剑指 Offer 45. 把数组排成最小的数题目描述:输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例 1:输入: [10,2]输出: “102”示例 2:输入: [3,30,34,5,9]输出: “3033459”提示:0 < nums.length <= 100说明:输出结果可能非常大,所以你需要返回一个字符串而不是整数拼接起来的数字可能会有前导 0,最后结果不需要去掉前导 0代码如下:class Sol原创 2021-04-12 13:40:07 · 640 阅读 · 1 评论 -
LeetCode——238. 除自身以外数组的乘积
题目描述:给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的原创 2021-04-10 20:10:14 · 118 阅读 · 0 评论 -
LeetCode——116. 填充每个节点的下一个右侧节点指针
题目描述:给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。进阶:你只能使用常量级额外空间。使用递归解题也符合要求,本题中递归程序占用的原创 2021-04-10 19:43:27 · 133 阅读 · 0 评论 -
LeetCode——931. 下降路径最小和
题目描述:给你一个 n x n 的 方形 整数数组 matrix ,请你找出并返回通过 matrix 的下降路径 的 最小和 。下降路径 可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列(即位于正下方或者沿对角线向左或者向右的第一个元素)。具体来说,位置 (row, col) 的下一个元素应当是 (row + 1, col - 1)、(row + 1, col) 或者 (row + 1, col + 1) 。示例 1:输入:matrix = [[原创 2021-04-10 18:59:32 · 333 阅读 · 0 评论