自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM基础知识总结

此文章仅为个人以前通过网上的知识点和资源进行的整理整合,侵删JVM (Sun:HotSpot,BEA:JRockit,IBM JVM:J9VM)1.常见问题2. JVM位置3. JVM结构3.1 类加载器名字引用在JVM栈里,具体属性数据在堆里4. 双亲委派机制(保证安全)5. Native6. 方法区7. 栈(Stack)8. 堆(Heap)9. GC(Garbage Collection)9.1 GC的对象9.2 GC机制9.3 GC算法9.3.1 标记-清除算法9.3.2 标记-压缩算法(标记-整理

2021-10-14 07:59:39 760

原创 Java多线程基础知识总结

此文章仅为个人以前通过网上知识点进行整合总结,存在部分个人修改,侵删Java Multithreading1.基础知识1.1进程(process)和线程(thread)的区别1.2 一个线程的生命周期1.3 线程创建4种方法1.3.1: Thread继承1.3.2: Runnable接口1.3.3: Callable接口1.3.4: 线程池2. wait,sleep,notify,notifyall,join,yield,interrupt2.1 sleep 与 wait 区别2.2 notify,no

2021-10-14 07:34:07 259

原创 计算机网络基础知识总结

计算机网络此文章为网上知识点个人整合,一些知识点附带原文链接,侵删0. OSI:七层模型、五层模型、TCP/IP四层模型https://www.cnblogs.com/gdayq/p/5797645.htmlhttps://blog.csdn.net/yaopeng_2005/article/details/7064869[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kyqf0iax-1634166183684)(ComputerNetwork_

2021-10-14 07:09:17 328

原创 Leetcode-989. 数组形式的整数加法(Java)

对于非负整数X而言,X的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果X = 1231,那么其数组形式为[1,2,3,1]。给定非负整数 X 的数组形式A,返回整数X+K的数组形式。示例 1:输入:A = [1,2,0,0], K = 34输出:[1,2,3,4]解释:1200 + 34 = 1234示例 2:输入:A = [2,7,4], K = 181输出:[4,5,5]解释:274 + 181 = 455示例 3:输入:A = [2,1,5...

2021-10-14 06:57:56 134

原创 DFS-求迷宫最短路径和路径个数

测试用例://5 5 矩阵m n//1 0 起点x y//3 3 终点x y //2 障碍物个数//2 2 障碍物1坐标//2 1 障碍物2坐标import java.util.Scanner;//5 5 矩阵m n//1 0 起点x y//3 3 终点x y //2 障碍物个数 //2 2 障碍物1坐标//2 1 障碍物2坐标 public class HW...

2021-10-14 06:21:53 753

原创 Leetcode-面试题 08.11. 硬币(Java)

硬币。给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。(结果可能会很大,你需要将结果模上1000000007)示例1:输入: n = 5输出:2解释: 有两种方式可以凑成总金额:5=55=1+1+1+1+1示例2:输入: n = 10输出:4解释: 有四种方式可以凑成总金额:10=1010=5+510=5+1+1+1+1+110=1+1+1+1+1+1+1+1+1+1来源:力扣(LeetCode)链接:https://l...

2021-10-13 18:40:57 126

原创 OpenMP初始CMakeLists配置

未配置前,测试代码无法按预期运行,配置后测试代码可以正常运行,以此做个备注cmake_minimum_required(VERSION 3.16)project(SOR_openMP)set(CMAKE_CXX_STANDARD 11)add_executable(SOR_openMP main.cpp)# openMP settingsFIND_PACKAGE(OpenMP REQUIRED)if (OPENMP_FOUND) message("OPENMP FOUND")

2021-10-08 09:36:21 1510

原创 NC81:二叉搜索树的第k个结点

public class Solution { List<TreeNode> res = new ArrayList<>(); TreeNode KthNode(TreeNode pRoot, int k) { int length = inorder(pRoot); if((length<k) || (k==0)){ return null; } return res.g.

2021-09-24 06:23:54 110

原创 Leetcode-26. 删除有序数组中的重复项(JAVA)

给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len = removeDuplic

2021-09-24 05:32:01 370

原创 Leetcode-121. 买卖股票的最佳时机(JAVA)

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

2021-09-24 04:41:08 113

原创 Leetcode-1091. 二进制矩阵中的最短路径(Java)

给你一个 n x n 的二进制矩阵 grid 中,返回矩阵中最短 畅通路径 的长度。如果不存在这样的路径,返回 -1 。二进制矩阵中的 畅通路径 是一条从 左上角 单元格(即,(0, 0))到 右下角 单元格(即,(n - 1, n - 1))的路径,该路径同时满足下述要求:路径途经的所有单元格都的值都是 0 。路径中所有相邻的单元格应当在 8 个方向之一 上连通(即,相邻两单元之间彼此不同且共享一条边或者一个角)。畅通路径的长度 是该路径途经的单元格总数。示例 1:来源:力扣(Le

2021-09-13 01:00:18 269

原创 Leetcode-剑指 Offer II 099. 最小路径之和(Java)

给定一个包含非负整数的 mxn网格grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:一个机器人每次只能向下或者向右移动一步。示例 1:输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输出:7解释:因为路径 1→3→1→1→1 的总和最小。示例 2:输入:grid = [[1,2,3],[4,5,6]]输出:12提示:m == grid.lengthn == grid[i].length...

2021-09-12 22:56:49 293

原创 Leetcode-200. 岛屿数量(Java)

给你一个由'1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0","0","0"]]输出:1示例 2:输入:grid = ...

2021-09-12 20:55:04 283

原创 Leetcode-2. 两数相加(JAVA)

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

2021-09-12 07:35:25 108

原创 Leetcode-70. 爬楼梯(JAVA)

假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶来源:力扣(LeetCode)链接:https://leetcod...

2021-09-09 07:27:14 149

原创 Leetcode-128. 最长连续序列(JAVA)

给定一个未排序的整数数组 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提示:0 <= nums.length <= 105-109 <= nums..

2021-09-09 07:17:41 188

原创 Leetcode-75. 颜色分类(JAVA)

给定一个包含红色、白色和蓝色,一共n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。示例 1:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]示例 2:输入:nums = [2,0,1]输出:[0,1,2]示例 3:输入:nums = [0]输出:[0]示例 4:输入:nums = [1]输出:[1]来源:力扣(LeetC..

2021-09-07 07:16:11 138

原创 Leetcode-36. 有效的数独(JAVA)

请你判断一个9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字1-9在每一行只能出现一次。数字1-9在每一列只能出现一次。数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用'.'表示。注意:一个有效的数独(部分已被填充)不一定是可解的。只需要根据以上规则,验证已经填入的数字是否有效即可。输入:board =[["5","3",".",".","7",".","."...

2021-09-07 06:19:07 77

转载 Java-Arrays常用方法总结

https://blog.csdn.net/zhzh402/article/details/79670509import java.util.Arrays //导入包,均为静态方法1.数组转字符串//一维数组int[] array = new int[]{1, 2, 3};System.out.println(Arrays.toString(array)); //[1, 2, 3]//二维数组int[][] deepArray = new int[][]{{1, 3},{2,

2021-08-25 13:03:52 192

原创 Practice-链表快排

public class ListQuickSort { public static final int R = 50; public static void main(String[] args){ int[] arr = new int[]{2,32,78,16,23,5,0,1,17,19,21}; ListNode head = new ListNode(0); ListNode p = head; for (in.

2021-08-18 17:57:55 76

原创 Leetcode-53. 最大子序和(JAVA)

给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1] 的和最大,为6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [0]输出:0示例 4:输入:nums = [-1]输出:-1示例 5:输入:nums = [-100000]输出:-100000来源:力扣...

2021-07-31 09:42:16 88

原创 Leetcode-217. 存在重复元素(JAVA)

给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/contains-duplicate著作.

2021-07-31 06:07:26 120

原创 剑指Offer-09. 用两个栈实现队列(Java)

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:["CQueue","deleteHead","appendTail.

2021-07-30 03:45:57 179

原创 Practice-两个线程交替打印1-90(Java)

package com.cai;public class MultiThreadPrint { public static void main(String[] args) { Object o = new Object(); new Thread(new NumberPrintRunnable1(o)).start(); new Thread(new NumberPrintRunnable2(o)).start(); }}clas.

2021-07-28 04:44:57 160

原创 Leetcode-21. 合并两个有序链表(JAVA)

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-100 <= Node.val <= 100l1 和 l2 均按 非递减顺序 排列..

2021-07-27 06:37:40 158

原创 Leetcode-438. 找到字符串中所有字母异位词(JAVA)

给定一个 n×n 的二维矩阵matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例 2:输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[1...

2021-07-27 04:57:57 164

原创 Leetcode-438. 找到字符串中所有字母异位词(JAVA)

给定两个字符串s和 p,找到s中所有p的异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词 指字母相同,但排列不同的字符串。示例1:输入: s = "cbaebabacd", p = "abc"输出: [0,6]解释:起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。示例 2:输入: s = "abab", p = "ab"输出: [0,1,2]解释...

2021-07-25 06:38:01 384

原创 Leetcode-7. 整数反转(JAVA)

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−231,231− 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0来源:力扣(LeetCode)链接:https://leetcode-cn...

2021-07-25 05:53:42 128

原创 Leetcode-88. 合并两个有序数组(JAVA)

给你两个有序整数数组nums1 和 nums2,请你将 nums2 合并到nums1中,使 nums1 成为一个有序数组。初始化nums1 和 nums2 的元素数量分别为m 和 n 。你可以假设nums1 的空间大小等于m + n,这样它就有足够的空间保存来自 nums2 的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]示例 2:输入:nums1 = [1]...

2021-07-25 05:17:15 154

原创 Leetcode-49. 字母异位词分组(JAVA)

给定一个字符串数组,将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词指字母相同,但排列不同的字符串。示例 1:输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]输出: [["bat"],["nat","tan"],["ate","eat","tea"]]示例 2:输入: strs = [""]输出: [[""]]示例 3:输入: strs = ["a"]输出: [["a"]]提示:1 <.

2021-07-24 06:40:46 196

原创 Leetcode-剑指 Offer 10- I. 斐波那契数列(JAVA)

写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0,F(1)= 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:1示例 2:输入:n = 5输出...

2021-07-23 08:46:06 136

原创 Leetcode-11. 盛最多水的容器(JAVA)

给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0) 。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。示例 2...

2021-07-23 08:41:52 199

原创 Leetcode-145. 二叉树的后序遍历(JAVA)

给定一个二叉树,返回它的 后序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [3,2,1]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-postorder-traversal1.递归/** * Definition for a binary tree node. * public class TreeNode { * ...

2021-07-21 00:55:35 169

原创 Leetcode-94. 二叉树的中序遍历(JAVA)

给你二叉树的根节点 root ,返回它节点值的中序遍历。示例 1:输入:root = [1,null,2,3]输出:[1,2,3]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[1,2]示例 5:输入:root = [1,null,2]输出:[1,2]来源:力扣(LeetCode)链接:https://leetcode-cn.com/proble..

2021-07-20 01:28:51 95

原创 Leetcode-剑指 Offer 32 - III. 从上到下打印二叉树 III(JAVA)

请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [20,9], [15,7]]提示:节点总数 <= 1000来源:力扣(LeetCode)链接:https://leetco...

2021-07-18 23:33:24 146 1

原创 Leetcode-144. 二叉树的前序遍历(JAVA)

给你二叉树的根节点 root ,返回它节点值的前序遍历。示例 1:输入:root = [1,null,2,3]输出:[1,2,3]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[1,2]示例 5:输入:root = [1,null,2]输出:[1,2]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/b..

2021-07-18 08:29:52 135

原创 Leetcode-61. 旋转链表(JAVA)

给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动k个位置。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[4,5,1,2,3]示例2:输入:head = [0,1,2], k = 4输出:[2,0,1]链表中节点的数目在范围 [0, 500] 内-100 <= Node.val <= 1000 <= k <= 2 * 109来源:力扣(LeetCode)链接:https://leetcode-cn...

2021-07-18 08:10:35 230

原创 Leetcode-1. 两数之和(JAVA)

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

2021-07-17 18:28:27 45

原创 Leetcode-206.反转链表(JAVA)

给你单链表的头节点head,请你反转链表,并返回反转后的链表。输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]输入:head = []输出:[]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list//** * Definition for singly-linked list. * public class ListNode { * int val;..

2021-07-16 22:23:16 71

原创 Git-基本命令总结

1.创建git本地仓库初始化$ git init //当前目录作为仓库$ git init workspace //指定目录作为仓库添加远程仓库

2021-02-07 11:39:08 101

空空如也

空空如也

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

TA关注的人

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