- 博客(156)
- 资源 (1)
- 收藏
- 关注
原创 JUC并发编程学习
JUC并发编程学习JUC概述Lock接口线程间通信线程间定制化通信集合的线程安全多线程锁Callable接口JUC强大的辅助类ReentrantReadWriteLock读写锁BlockingQueue阻塞队列ThreadPool线程池Fork/Join分支合并框架CompleteableFuture异步调用...
2022-07-10 14:55:20
1730
原创 JVM上篇学习1--内存与垃圾回收
JVM上篇学习-内存与垃圾回收JVM与Java体系结构类加载子系统运行时数据区概述及线程PC寄存器虚拟机栈
2022-04-04 21:45:27
1883
1
原创 MySQL学习笔记-基础篇1
MySQL 学习笔记–基础篇11.数据库概述与MySQL安装2.基本SELECT语句3.运算符4.排序与分页5.多表查询6.单行函数7.聚合函数
2022-02-26 15:51:53
1421
原创 JDK11 源码阅读 -- java.lang.Object
JDK11 源码阅读 – java.lang.ObjectObject 类是类层次的根,每个类都有 Object 作为超类。所有的对象,包括数组,都实现这个类的方法。package java.lang;import jdk.internal.HotSpotIntrinsicCandidate;private static native void registerNatives(); static { registerNatives(); }nati
2021-09-06 15:19:29
675
原创 NowCoder001--大数加法
NowCoder001–大数加法题目描述以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。(字符串长度不大于100000,保证字符串仅由’0’~'9’这10种字符组成)示例1输入"1","99"返回值"100"说明1+99=100 代码:package com.xujinshan.nowcoder.nc001;/** * @Author: xujinshan361@163.com * NowCoder001--大数加法 * 题目描述 *
2021-04-28 15:37:55
211
原创 NowCoder088--寻找第k大
NowCoder088–寻找第k大题目描述有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。示例1输入[1,3,5,2,2],5,3返回值2代码:package com.xujinshan.nowcoder.nc088;import java.util.Arrays;import java.util.PriorityQueue;/** * @Author: x
2021-04-27 23:19:29
179
原创 NowCoder 022-- 合并俩个有序的数组
NowCoder 022-- 合并俩个有序的数组题目描述给出两个有序的整数数组A 和 B,请将数组 B合并到数组A 中,变成一个有序的数组注意:可以假设A 数组有足够的空间存放B 数组的元素,A 和B 中初始的元素数目分别为 m和 n。代码:package com.xujinshan.nowcoder.nc022;import java.util.Arrays;/** * @Author: xujinshan361@163.com * NowCoder 022-- 合并俩个有序的数组
2021-04-19 17:04:18
118
原创 NowCoder059--矩阵的最小路径和
NowCoder059–矩阵的最小路径和题目描述给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。示例1输入[[1,3,5,9],[8,1,3,4],[5,0,6,1],[8,8,4,0]]返回值12备注:1≤n,m≤20001≤n,m≤20001≤n,m≤20001≤arri,j≤1001≤arri,j≤1001≤arri,j≤100代码:package com.xuj
2021-04-19 16:49:54
712
原创 NowCoder 003-- 链表中是否有环
NowCoder 003-- 链表中是否有环对于一个给定的链表,返回环的入口节点,如果没有环,返回null拓展:你能给出不利用额外空间的解法么?说明:本题目包含复杂数据结构ListNode分析:方法一:使用set集合特性解决方法二:双指针操作第一步,找环中相汇点。分别用p1,p2指向链表头部,p1每次走一步,p2每次走二步,直到p1==p2找到在环中的相汇点。那么我们可以知道fast指针走过a+b+c+bslow指针走过a+b那么2*(a+b) = a+b+c+b所以a = c
2021-04-17 22:43:57
242
原创 NowCoder073--数组中出现次数超过一半的数字
NowCoder073–数组中出现次数超过一半的数字题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。示例1输入[1,2,3,2,2,2,5,4,2]返回值2代码:package com.xujinshan.nowcoder.nc073;import java.util.Arrays;/** * @Autho
2021-04-17 22:16:01
113
原创 NowCoder017-最长回文子串
NowCoder017-最长回文子串题目描述对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。给定字符串A以及它的长度n,请返回最长回文子串的长度。示例1输入"abc1234321ab",12返回值7代码:package com.xujinshan.nowcoder.nc017;/** * @Author: xujinshan361@163.com * NowCoder017-最长回文子串 * 题目描述 * * 对于一个字符串,请设计一个高效算法,计算
2021-04-17 19:34:15
130
原创 NowCoder105-- 二分查找
NowCoder105-- 二分查找题目描述请实现有重复数字的升序数组的二分查找给定一个 元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1示例1输入[1,2,4,4,5],4返回值2说明从左到右,查找到第1个为4的,下标为2,返回2示例2输入[1,2,4,4,5],3返回值-1示例3输入[1,1,1,1,1],1返回值0代码:package
2021-04-17 19:18:45
508
原创 NowCoder052--括号序列
NowCoder052–括号序列题目描述给出一个仅包含字符’(’,’)’,’{’,’}’,’[‘和’]’,的字符串,判断给出的字符串是否是合法的括号序列括号必须以正确的顺序关闭,"()“和”()[]{}“都是合法的括号序列,但”(]“和”([)]"不合法。示例1输入"["返回值false示例2输入"[]"返回值true代码:package com.xujinshan.nowcoder.nc052;import java.util.ArrayDeque;im
2021-04-17 11:06:54
133
原创 NowCoder041--最长无重复子串
NowCoder041–最长无重复子串题目描述给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同)。示例1输入[2,3,4,5]返回值4示例2输入[2,2,3,4,3]返回值3备注:1≤n≤1051≤n≤10^51≤n≤105代码:package com.xujinshan.nowcoder.nc041;import java.util.HashMap;import java.util.HashSet;import j
2021-04-17 10:54:04
121
原创 NowCoder 119 -- 最小的k个数
NewCoder 119 – 最小的k个数题目描述给定一个数组,找出其中最小的K个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。如果K>数组的长度,那么返回一个空的数组示例1输入[4,5,1,6,2,7,3,8],4 返回值[1,2,3,4]代码:package com.xujinshan.nowcoder.nc119;import java.util.ArrayList;import java.util.Arrays
2021-04-16 15:43:16
76
原创 NowCoder045--实现二叉树先序,中序和后序遍历
NewCoder045–实现二叉树先序,中序和后序遍历题目描述分别按照二叉树先序,中序和后序打印所有的节点。示例1输入{1,2,3}返回值[[1,2,3],[2,1,3],[2,3,1]]备注:n≤106n≤106n≤106n≤106n \leq 10^6n≤106n≤106n≤106n≤106说明:本题目包含复杂数据结构TreeNode代码:package com.xujinshan.nowcoder.nc045;import java.util.Arrays;imp
2021-04-14 15:22:05
302
原创 NowCoder140--排序
NewCoder140–排序题目描述给定一个数组,请你编写一个函数,返回该数组排序后的形式。示例1输入[5,2,3,1,4]返回值[1,2,3,4,5]示例2输入[5,1,6,2,5]返回值[1,2,5,5,6]备注:*数组的长度不大于100000,数组中每个数的绝对值不超过10910^9109.代码:package com.xujinshan.nowcoder.nc140;import javax.sound.midi.Soundbank;import
2021-04-14 14:53:34
160
原创 剑指 Offer 26 -- 树的子结构
剑指 Offer 26 – 树的子结构题目:输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A: 3 / \ 4 5 / \ 1 2给定的树 B: 4 / 1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。示例 1:输入:A = [1,2,3], B = [3,1]输出:false示例 2:输入:A =
2021-04-07 22:01:46
335
1
原创 剑指 Offer 33 -- 二叉搜索树后序遍历序列
剑指 Offer 33 – 二叉搜索树后序遍历序列题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树: 5 / \ 2 6 / \ 1 3示例 1:输入: [1,6,3,2,5]输出: false示例 2:输入: [1,3,2,6,5]输出: true提示:数组长度 <= 1000代码:package com.
2021-04-05 21:41:37
313
原创 剑指Offer 39 -- 数组中出现次数超过一半的数字
剑指Offer 39 – 数组中出现次数超过一半的数字题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2限制:1 <= 数组长度 <= 50000代码:package com.xujinshan.offer.offer39;import java.util.Arrays;/** * @Author: xuji
2021-04-05 21:22:02
137
原创 剑指Offer50 -- 第一个只出现一次的字符
剑指Offer50 – 第一个只出现一次的字符题目:在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例:s = "abaccdeff"返回 "b"s = "" 返回 " "限制:0 <= s 的长度 <= 50000代码:package com.xujinshan.offer.offer50;import java.util.HashMap;import java.util.Map;/** * @Author:
2021-04-05 21:06:40
176
原创 剑指 Offer 64 -- 求1+2+…+n
剑指 Offer 64 – 求1+2+…+n题目:求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45限制:1 <= n <= 10000代码:package com.xujinshan.offer.offer64;/** * @Author: xujinshan361@163.com * 剑指
2021-04-05 20:26:35
124
原创 剑指Offer 62 -- 圆圈中最后剩下的数字
剑指Offer 62 – 圆圈中最后剩下的数字题目:0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出: 3示例 2:输入: n = 10, m = 17输出: 2限制:1 <= n
2021-04-05 17:18:02
392
1
原创 剑指Offer 61 -- 扑克牌中的顺子
剑指Offer 61 – 扑克牌中的顺子题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。示例 1:输入: [1,2,3,4,5]输出: True示例 2:输入: [0,0,1,2,5]输出: True限制:数组长度为 5 数组的数取值为 [0, 13] .代码:package com.xujinshan.offer.offer61;
2021-04-05 16:53:22
177
原创 剑指Offer 58_II 左旋转字符串
剑指Offer 58_II 左旋转字符串题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = "abcdefg", k = 2输出: "cdefgab"示例 2:输入: s = "lrloseumgh", k = 6输出: "umghlrlose"限制:1 <= k < s.length <
2021-04-04 11:47:53
291
1
原创 剑指 Offer 58_I 翻转单词顺序
剑指 Offer 58_I 翻转单词顺序题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。示例 1:输入: "the sky is blue"输出: "blue is sky the"示例 2:输入: " hello world! "输出: "world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的
2021-04-04 11:37:09
126
原创 剑指 Offer57_II 和为s 的连续正数序列
剑指 Offer57_II 和为s 的连续正数序列题目:输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]限制:1 <= target <= 10^5代码:package com.xujins
2021-04-04 11:02:51
176
原创 剑指Offer 57 -- 和为s 的俩个数字
剑指Offer 57 – 和为s 的俩个数字题目:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例 1:输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]示例 2:输入:nums = [10,26,30,31,47,60], target = 40输出:[10,30] 或者 [30,10]限制:1 <= nums.length <= 10^5
2021-04-03 23:40:39
89
原创 剑指Offer56_II 数组中出现的次数II
剑指Offer56_II 数组中出现的次数II题目:在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。示例 1:输入:nums = [3,4,3,3]输出:4示例 2:输入:nums = [9,1,7,9,7,9,7]输出:1限制:1 <= nums.length <= 100001 <= nums[i] < 2^31代码:package com.xujinshan.offer.offer56_II;
2021-04-03 23:11:49
91
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人