自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 图的构建方式

左神的模板:图: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 612

原创 排序算法模板

选择排序:选择排序( Selection sort)是一种简单直观的排序算法。它的工作原理是每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。选择排序算法通过选择和交换来实现排序,其排序流程如下:(1)首先从原始数组中选择最小的1个数据,将其和位于第1个位置的数据交换。(2)接着从剩下的n-1个数据中选择次小的1个元素,将其和第2个位置的数据交换(3)然后,这样不断重复,直到最后两个数据完成交换。最后,便完成了对原始数组的从小到大的

2021-03-13 13:32:02 265

原创 HashMap先按照Value升序排序,Value相同再按照Key升序排序

给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小升序排列。请你返回排序后的数组。注意:arr中不含相同元素。class Solution { public int[] sortByBits(int[] arr) { int n = arr.length; int[] nums = new int[n]; HashMap<Integer,

2021-03-12 14:43:06 1151 1

原创 计算连续字符的个数

题目描述:给你一个字符串 s ,字符串的「能量」定义为:只包含一种字符的最长非空子字符串的长度。请你返回字符串的能量。提示:1 <= s.length <= 500s 只包含小写英文字母。示例 1:输入:s = “leetcode”输出:2解释:子字符串 “ee” 长度为 2 ,只包含字符 ‘e’ 。示例 2:输入:s = “abbcccddddeeeeedcba”输出:5解释:子字符串 “eeeee” 长度为 5 ,只包含字符 ‘e’ 。示例 3:输入:s =

2021-03-07 17:03:59 2628

原创 字符串中的单词数

题目描述:统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例:输入: “Hello, my name is John”输出: 5解释: 这里的单词是指连续的不是空格的字符,所以 “Hello,” 算作 1 个单词。代码如下:逗号算做字母class Solution { public static int countSegments(String str) { String s = str.tri

2021-03-02 13:39:25 342

原创 Java中map.getOrDefault()方法的使用

Map.getOrDefault(Object key, V defaultValue);如果在Map中存在key,则返回key所对应的的value。如果在Map中不存在key,则返回默认值。例如:map.put(num, map.getOrDefault(num, 0) + 1);表示:value默认从1开始,每次操作后num对应的value值加1可以用来统计数字出现的次数!面试题 17.10. 主要元素数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,

2021-01-15 16:43:32 852

原创 HashSet和HashMap的遍历形式

代码如下:public class Solution { public static void main(String[] args) { HashMap<Integer, Integer> map = new HashMap<>(); map.put(1, 10); map.put(2, 20); map.put(3, 30); map.put(4, 40); //第一种key

2021-01-14 17:18:15 234

原创 LeetCode——354. 俄罗斯套娃信封问题

题目描述:给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。说明:不允许旋转信封。示例:输入: envelopes = [[5,4],[6,4],[6,7],[2,3]]输出: 3解释: 最多信封的个数为 3, 组合为: [2,3] => [5,4] => [6,7]

2020-12-25 11:29:30 321

原创 异或总结,位运算

异或性质:相同为0,不同为11.由于0^0=0 0^1=1 所以,0^任何数 = 任何数。2.由于1^0=1 1^1 =0所以,1^任何数 = 任何数取反。3.任何数^任何数 = 0。4.用于将特定的位反转,如对10100001的第2位和第3位翻转,可以将数与00000110进行按位异或运算。5.通过按位异或运算,可以实现两个值的交换,而不必使用临时变量。6.异或运算的特点:a两次异或同一个数b(a=abb)仍然为原值a。7.异或是可交换的:a^b = b^a。例1:不使用临时变量交换a和b

2020-12-10 11:35:53 1565

原创 二和N叉树的层序遍历(使用队列)

给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7]返回其层次遍历结果:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(

2020-11-24 11:01:18 251

原创 二叉树的前序,中序,后序遍历

题目描述:给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例:输入:root = [1,null,2,3]输出:[1,2,3]代码如下:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right

2020-11-23 22:47:35 198

原创 SpringBoot面经总结

SpringBoot

2022-08-03 16:52:48 533

原创 Java基础面经汇总

Java面经

2022-08-01 22:30:08 924

原创 寻找链表的中间节点

链表中间节点

2022-07-24 23:26:14 600

原创 设计模式面经

设计模式

2022-07-15 21:18:40 610

原创 SpringMVC面经

SpringMVC

2022-06-27 16:17:14 258

原创 Spring面经

Spring

2022-06-26 20:14:11 1492

原创 JUC面经

JUC

2022-06-21 22:37:52 406

原创 JVM面经

JVM

2022-06-11 18:44:49 398

原创 计算机网络面经

计算机网络

2022-06-11 14:07:36 665

原创 Redis面经

Redis面试总结

2022-06-10 23:00:20 721

原创 MySQL面经

面试数据库基础知识常见题

2022-06-07 23:32:11 1063

原创 判断无向图是不是有环

使用并查集:如果找到两个节点的头节点一个的时候,就判断有环。剑指 Offer II 118. 多余的边树可以看成是一个连通且 无环 的 无向 图。给定往一棵 n 个节点 (节点值 1~n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 到 n 中间,且这条附加的边不属于树中已存在的边。图的信息记录于长度为 n 的二维数组 edges ,edges[i] = [ai, bi] 表示图中在 ai 和 bi 之间存在一条边。请找出一条可以删去的边,删除后可使得剩余部分是一个有着 n 个节点的树。如

2022-04-18 15:01:07 1404

原创 判断有向图是否存在环——拓扑排序

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

2022-04-17 13:02:16 846

原创 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 579

原创 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 477

原创 GitHub搜索限制条件

in:name Vue// 截图上都是项目名带有“Vue”关键字的项目,但是项目的数量是非常多的,可以约束一下in:name Vue stars:>5000// 也可以用fork的数量来进行约束in:name Vue stars:>5000 forks:>3000// 按照README.md来搜索in:readme Vuein:readme Vue stars:>3000 forks:>3000// 按照descriptin搜索// 如果我们要学习后台管

2022-03-08 20:55:24 627

原创 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 166

原创 字符串中不同整数的数目(去除前导零)

题目描述:给你一个字符串 word ,该字符串由数字和小写英文字母组成。请你用空格替换每个不是数字的字符。例如,“a123bc34d8ef34” 将会变成 " 123 34 8 34" 。注意,剩下的这些整数为(相邻彼此至少有一个空格隔开):“123”、“34”、“8” 和 “34” 。返回对 word 完成替换后形成的 不同 整数的数目。只有当两个整数的不含前导零的十进制表示不同, 才认为这两个整数也不同。示例 1:输入:word = “a123bc34d8ef34”输出:3解释:不同

2021-12-01 09:48:56 345

转载 注解和反射笔记

注解注解是JDK5.0开始引入的新技术;注解的作用是:不是程序本身,可以对程序做出解释可以被其他程序读取注解的格式是:注解是以"@注释名"在代码中存在的,还可以添加一些参数注解可以在什么地方使用:可以附加在package,class,method,field等上面,相当于给他们添加了额外的辅助信息,我们可以通过反射机制编程,实现对这些元数据的访问。元注解的作用:负责注解其他注解,JAVA定义了4个标准的meta-annotation类型,他们被用来提供对其他注解类型进行说明。

2021-06-24 17:14:07 148

原创 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 210

原创 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 193

原创 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 232

原创 LeetCode——554. 砖墙

题目描述:你的面前有一堵矩形的、由 n 行砖块组成的砖墙。这些砖块高度相同(也就是一个单位高)但是宽度不同。每一行砖块的宽度之和应该相等。你现在要画一条自顶向下的、穿过最少砖块的垂线。如果你画的线只是从砖块的边缘经过,就不算穿过这块砖。你不能沿着墙的两个垂直边缘之一画线,这样显然是没有穿过一块砖的。给你一个二维数组 wall ,该数组包含这堵墙的相关信息。其中,wall[i] 是一个代表从左至右每块砖的宽度的数组。你需要找出怎样画才能使这条线穿过的砖块数量最少 ,并且返回穿过的砖块数量 。示例 1:

2021-05-02 10:04:26 248 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 170

原创 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 169

原创 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 165

原创 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 155

原创 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 509

原创 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 260 1

空空如也

空空如也

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

TA关注的人

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