自定义博客皮肤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

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

原创 力扣【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 121

原创 力扣【124】二叉树中的最大路径和

题目:路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和 。示例 1:输入:root = [1,2,3]输出:6解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6示例 2:输入:root = [-10,9,20,null,.

2021-02-22 10:25:18 251

原创 力扣【136】只出现一次的数字

题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4题解:方法一:HashMapimport java.util.*;class Solution { public int singleNumber(int[] nums) { .

2021-02-21 14:57:30 113

原创 力扣【84】柱状图中最大的矩形

题目:给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为[2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为10个单位。示例:输入: [2,1,5,6,2,3]输出: 10题解:方法一:暴力法一:(从左往右遍历)import java.util.*;class Solution {...

2021-02-20 22:05:01 187

原创 力扣【76】最小覆盖子串

题目:给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。注意:如果 s 中存在这样的子串,我们保证它是唯一的答案。示例 1:输入:s = "ADOBECODEBANC", t = "ABC"输出:"BANC"示例 2:输入:s = "a", t = "a"输出:"a"题解:滑动窗口,使用map来初始化每一个字符出现的次数。然后使用滑动窗口寻找包含字符串的最短字符串。.

2021-02-20 17:01:17 236

原创 力扣【4】寻找两个正序数组的中位数

题目:给定两个大小为 m 和 n 的正序(从小到大)数组nums1 和nums2。请你找出并返回这两个正序数组的中位数。进阶:你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗?示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位...

2021-02-20 14:17:33 141

原创 力扣【461】汉明距离

题目:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。题解:import java.util.*;class Solution { public int hamming...

2021-01-02 22:25:45 148

原创 力扣【448】找到所有数组中消失的数字

题目:给定一个范围在1 ≤ a[i] ≤ n (n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]题解:import java.util.*;class Solution { public List<Integer> findDisappearedNumbers(int[] nums) {...

2021-01-02 21:53:00 137

原创 力扣【198】打家劫舍

题目:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。示例...

2020-12-23 10:59:53 108

原创 力扣【543】二叉树的直径

题目:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回3, 它的长度是路径 [4,2,1,3] 或者[5,2,1,3]。注意:两结点之间的路径长度是以它们之间边的数目表示。题解:import java.util.Arra...

2020-12-13 12:56:18 217 1

原创 力扣【226】翻转二叉树

题目:翻转一棵二叉树。示例:输入: 4 / \ 2 7/ \ / \1 3 6 9输出: 4 / \ 7 2/ \ / \9 6 3 1题解:class Solution { public TreeNode invertTree(TreeNode root) { //边界条件 if (root == null) { r...

2020-12-13 11:28:25 183

原创 力扣【234】回文链表

题目:请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true题解:双指针import java.util.ArrayList;import java.util.*;class ListNode { int val; ListNode next; ListNode(int x) { val = x; }}class Solution {

2020-12-13 11:27:58 117

原创 力扣【283】移动零

题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。题解:双指针class Solution { public void moveZeroes(int[] nums) { int n = nums.length, left = 0, right = 0;

2020-12-13 11:27:29 169

原创 力扣【221】最大正方形

题目:在一个由'0'和'1'组成的二维矩阵内,找到只包含'1'的最大正方形,并返回其面积。示例 1:输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]输出:4题解:方法一:暴力import java.util.*;class Solution { public int maximalSquare(char...

2020-12-12 22:31:57 252

原创 力扣【215】数组中的第K个最大元素(topK问题)(美团一面)

题目:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。题解:(此处复习一下快排,归并,堆排)class Solution { public int findKthLarge.

2020-12-12 22:31:32 227

原创 力扣【208】前缀树

题目:实现一个 Trie (前缀树),包含insert,search, 和startsWith这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回 truetrie.search("app"); // 返回 falsetrie.startsWith("app"); // 返回 truetrie.insert("app"); trie.search("a...

2020-12-12 22:31:11 871

原创 力扣【169】多数元素

题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入: [3,2,3]输出: 3示例2:输入: [2,2,1,1,1,2,2]输出: 2题解:class Solution { public int majorityElement(int[] nums) { Map<Integer, Integer> ...

2020-12-12 09:58:03 136

原创 力扣【160】相交链表

题目:编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。题解:public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { ListNode tem2 = headB; while (headA != null) { while (headB != null)

2020-12-12 09:57:39 239

原创 力扣【155】最小栈

题目:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop()—— 删除栈顶的元素。top()—— 获取栈顶元素。getMin() —— 检索栈中的最小元素。题解:采用辅助栈,用来存放最小值。(剑指offer第二十题)class MinStack { Stack<Integer> datastack = new Stack<>(); Stack<In..

2020-12-12 09:57:17 123

原创 力扣【148】排序链表

题目:给你链表的头结点head,请将其按升序排列并返回排序后的链表。示例 :输入:head = [4,2,1,3]输出:[1,2,3,4]题解:import java.util.*;class ListNode { int val; ListNode next; ListNode() {} ListNode(int val) { this.val = val; } ListNode(int val, ListNode n...

2020-12-12 08:53:23 178

原创 JVM的性能监控与故障处理工具

jdk1.8自带的jmc要比jdk13以后商业化的jmc好用.JFR就是飞行记录.jmc看热点方法的使用,VisualVM看实时的使用,两个配合着应用.内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后...

2020-12-11 21:15:08 205

原创 力扣【104】二叉树的最大深度

题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。题解:/** * Definition for a binary tree node. * public class TreeNode { * int val; ...

2020-12-11 14:59:40 149

原创 力扣【152】乘积最大子数组

题目:给你一个整数数组 nums,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释:结果不能为 2, 因为 [-2,-1] 不是子数组。题解:方法一:动态规划(等我复习dp的时候再看...)class Solution { public int maxProduct...

2020-12-11 14:58:23 166

原创 力扣【206】反转链表

题目:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL题解:import java.util.*;class ListNode { int val; ListNode next; ListNode(int x) { val = x; }}class Solution { public List

2020-12-11 14:58:01 364

原创 力扣【101】对称二叉树

题目:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2/ \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3题解:对称二叉树和返回二叉树的镜像是不一样的。注意区分。/** * Definition for a binary tree nod...

2020-12-11 11:31:07 176 1

原创 力扣【102】二叉树的层序遍历

题目:给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]题解:import java.util.*;class TreeNode { int val; TreeNode left = null; ...

2020-12-11 11:30:41 176

原创 力扣【94】二叉树的中序遍历

class Solution { public List<Integer> inorderTraversal(TreeNode root) { List<Integer> res = new ArrayList<Integer>(); inorder(root, res); return res; } public void inorder(TreeNode root, List...

2020-12-11 10:28:55 120

原创 力扣【98】验证二叉搜索树

题目:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例1:输入: 2 / \ 1 3输出: true示例2:输入: 5 / \ 1 4 / \ 3 6输出: false解释: 输入为: [5,1,4,null,null,3,6]。 根节点的值为 ...

2020-12-11 10:28:31 219

原创 OSI七层模型以及每一层干嘛的

TCP/IP模型分为几层?TCP四层结构应用层 传输层 网络层 网络接口层

2020-12-10 19:52:49 309

原创 【牛客】设计LRU缓存结构

题目描述设计LRU缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能set(key, value):将记录(key, value)插入该结构 get(key):返回key对应的value值要求set和get方法的时间复杂度为O(1) 某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的。 当缓存的大小超过K时,移除最不经常使用的记录,即set或get最久远的。若opt=1,接下来两个整数x, y,表示set(x, y)若opt=2,接下来一个整数x

2020-12-09 11:05:17 213

原创 【华为】24点游戏算法

题目描述问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利输入:4个1-10的数字。[数字允许重复,但每个数字仅允许使用一次,测试用例保证无异常数字。输出:trueorfalse本题含有多组样例输入。输入描述:输入4个int整数输出描述:返回能否得到24点,能输出true,不能输出false示例1输入7 2 1 10输出truepackage test;import java.util.*;public cla...

2020-12-08 21:57:34 577

原创 【华为】从单向链表中删除指定值的节点

题目:题目描述输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。链表结点定义如下:class ListNode{ int val; ListNode next = null; ListNode(int val){ this.val = val; }}详细描述:本题为考察链表的插入和删除知识。链表的值不能重复构造过程,例如1 <- 23 <- 2...

2020-12-06 17:22:25 287

原创 【华为】4个常考IP地址的题型

split分隔符总结1.字符"|","*","+"都得加上转义字符,前面加上"\\"。2.而如果是"\",那么就得写成"\\\\"。3.如果一个字符串中有多个分隔符,可以用"|"作为连字符。题目:IP地址交集判断题目描述:输入四个IP端,前两个为第一个IP段的起始和终止地址,后两个是第二个IP段的起始和终止地址,判断这两个IP段是否存在交集输入描述:输入4个IP输出描述:如果存在交集,输出 Overlap IP ; 如果不存在交集,输出 No Overlap IP题解:pa

2020-12-06 10:39:53 1340

原创 【华为】统计每个月兔子的个数

题目:题目描述有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?输入描述:输入int型表示month输出描述:输出兔子总数int型示例1输入9输出34题解:使用递归,或者用数组存储的动态规划。第一个月 1第二个月 2第三个月 3第四个月 5第五个月 8...import java.util.*;public class Main{

2020-12-06 00:58:34 210

原创 【华为】大小写字母转换

题目: 输入任意个字符串,将其中的小写字母变为大写,大写字母变为小写,其他字符不用处理; 输入描述: 任意字符串:abcd12#%XYZ 输出描述: 输出字符串:ABCD12#%xyz 示例1: 输入: abcd12#%XYZ 输出: ABCD12#%xyz 题解:注意a的ASCII码是97,A的ASCII码是65,0的ASCII码是48.import java.util.Scanner;public class Main { public s

2020-12-05 23:48:34 610

原创 力扣【114】将二叉树展开为链表

给定一个二叉树,原地将它展开为一个单链表。例如,给定二叉树 1 / \ 2 5/ \ \3 4 6将其展开为:1\ 2 \ 3 \ 4 \ 5 \ 6题解:...

2020-12-05 22:58:14 199

原创 Java内存模型和内存间的交互操作

执行引擎就是java的类装载器.

2020-12-02 08:44:22 163

原创 垃圾回收算法

另外一个就是可达性分析(或者根搜索算法),商业应用中主要用这个.OopMap了解重点就是把存活的5个灰色的块放到右边.然后把左半部分全部变成保留区.就是From Survivor和To Survivor嘛.从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC。 Major GC 是清理永久代。Full GC 是清理整个堆...

2020-11-30 22:14:22 77

原创 JVM栈帧和局部变量表

编译执行(将字节码先编译成机器码,然后直接执行机器码)比解释执行(一行一行的执行,读的类文件,执行程序流的指令集)要快得多.Hotspot两种方式都有.或者网图:关于栈帧和帧栈,网上只有栈帧.不用的变量,请显示地置位null,有利于垃圾回收....

2020-11-30 16:40:26 199

原创 JVM的运行时数据区

本地方法栈不是重点,了解一下就行了.更多的重点放在Java栈\堆\方法区\程序计数器.新生代多次垃圾回收回收不掉的内容,或者说虚拟机判断需要存下来的内容,要放到老年代....

2020-11-30 15:04:04 120

空空如也

空空如也

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

TA关注的人

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