自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

想要成为大佬的彪彪

欢迎交流,共同进步呀

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

原创 二叉树的层序遍历(中等难度,好题)

目录题目概述(中等难度)思路与代码思路展现代码示例总结题目概述(中等难度)给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回其层序遍历结果:[ [3], [9,20], [15,7]]题目链接:点我进入leetcode思路与代码思路展现这道题目的核心其实就是怎么把每层的元素单独 存入一

2021-10-19 20:45:48 7 1

原创 平衡二叉树(简单难度)

目录题目概述(简单难度)思路与代码思路1代码1思路2代码2总结题目概述(简单难度)给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1示例 1:输入:root = [3,9,20,null,null,15,7]输出:true示例 2:输入:root = [1,2,2,3,3,null,null,4,4]输出:false示例3:输入:root = []输出:true题目链接:点我进入

2021-10-19 15:00:35 3

原创 对称二叉树(简单难度)

目录题目概述(简单难度)思路与代码思路展现代码示例总结题目概述(简单难度)给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [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题目链接:点我进入leetcode思路与代码思路展现这道题目的思路也是非常简单的:

2021-10-18 14:32:31 6

原创 另一棵树的子树(简单难度)

目录题目概述(简单难度)思路与代码思路展现代码示例总结题目概述(简单难度)给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。示例 1:输入:root = [3,4,5,1,2], subRoot = [4,1,2]输出:true示例 2:输入:r

2021-10-18 11:24:06 4

原创 相同的树(简单难度)

目录题目概述(简单难度)思路与代码思路展现代码示例总结题目概述(简单难度)给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入:p = [1,2,3], q = [1,2,3]输出:true示例 2:输入:p = [1,2], q = [1,null,2]输出:false示例 3:输入:p = [1,2,1], q = [1,1,2]输出:false题目链接:点我进入

2021-10-17 18:59:37 9

原创 二叉树的最大深度(简单难度)

目录题目概述(简单难度)思路与代码思路展现代码示例总结题目概述(简单难度)给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回它的最大深度 3题目链接:点我进入leetcode思路与代码思路展现使用子问题来进行解答首先明确什么是深度?深度就是从该节点到根节点所经历

2021-10-15 16:53:27 21 1

原创 二叉树的后序遍历---递归解法(简单难度)

目录题目概述(简单难度)思路与代码思路展现代码示例总结题目概述(简单难度)给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]进阶: 递归算法很简单,你可以通过迭代算法完成吗?题目链接:点我进入leetcode思路与代码思路展现在前面的前序遍历中,我们总结出不定义外部函数的方法更加适用于此题目,所以使用递归更加适用于此题目,来看代码:代码示例class Solution

2021-10-14 16:49:05 7

原创 二叉树的中序遍历---递归解法(简单难度)

目录题目概述(简单难度)思路与代码思路展现代码示例总结题目概述(简单难度)给你二叉树的根节点 root ,返回它节点值的 中序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,2,3]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[2,1]示例 5:输入:root = [1,null,2]输出:[1,2]题目链接:点我进入leetcode

2021-10-14 16:44:23 7

原创 二叉树的前序遍历---递归解法(简单难度)

目录题目概述(简单难度)思路与代码思路展现思路1(外部函数)代码1思路2(不定义外部函数)代码2总结题目概述(简单难度)给你二叉树的根节点 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,

2021-10-14 16:35:28 47

原创 数组中数字出现的次数 II(简单难度)

目录题目概述(简单难度)思路与代码思路1(遍历数组法)代码示例思想2(哈希)总结题目概述(简单难度)在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。示例 1:输入:nums = [3,4,3,3]输出:4示例 2:输入:nums = [9,1,7,9,7,9,7]输出:1题目链接:点我进入leetcode思路与代码思路1(遍历数组法)我的思路是先对数组进行排序后在遍历,使用一个计数器来寻找我们只出现过一次的数字.代码示例c

2021-10-09 10:48:52 41 22

原创 实现一个最小栈(简单难度)

目录题目概述(简单难度)思路与代码思路展现代码示例总结题目概述(简单难度)设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],

2021-10-08 09:57:41 52 4

原创 用栈实现队列(简单难度)

目录题目概述(简单难度)思路与代码思路展现代码示例总结题目概述(简单难度)请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:你只能使用标准的栈操作 —— 也就是只

2021-10-07 09:57:18 7

原创 用队列实现栈(简单难度)

目录题目概述(简单难度)思路与代码思路展现代码示例总结题目概述(简单难度)请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。注意:你只能使用队列的基本操作 —— 也就是 pu

2021-10-05 17:56:52 15

原创 有效的括号(简单难度,常考的好题目)

目录题目概述(简单难度)思路与代码思路展现代码示例总结题目概述(简单难度)给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:1:左括号必须用相同类型的右括号闭合。2:左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例 2:输入:s = "()[]{}"输出:true示例 3:输入:s = "(]"输出:false示例 4:输入:s = "([)]"输出:false示例

2021-10-05 11:10:04 32 7

原创 设计循环队列(中等难度)

目录题目概述(简单难度)思路与代码思路展现代码示例总结题目概述(简单难度)设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQueue(k): 构造器,

2021-10-04 18:14:58 37 3

原创 一篇帮你搞定数据结构中的栈和队列

目录概念一道关于集合的小练习集合中的栈push&peek方法概念代码示例pop方法概念代码示例注意事项(EmptyStackException异常)empty方法概念代码示例isEmpty方法概念代码示例中缀表达式转后缀表达式(面试笔试常考选择题)练习题1练习题2概念栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈 顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进

2021-10-04 18:04:13 70 1

原创 左旋转字符串(简单难度)

目录题目概述(简单难度)思路与代码思路1(字符串切片)代码示例1思路2(列表遍历拼接)代码示例2总结题目概述(简单难度)字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = "abcdefg", k = 2 输出: "cdefgab"示例 2:输入: s = "lrloseumgh", k = 6输出: "umghl

2021-10-02 17:44:12 5

原创 Clonable接口以及再次理解深拷贝与浅拷贝!!(面试常考)

目录Clonable接口Clonable接口结合深拷贝问题与浅拷贝问题Clonable接口在抽象类和接口的博客中,我们讲到了两个我们会常用到的接口,一个是Compareable接口,一个是Comperator接口,现在我们再来讲一个我们会经常用到的接口,也就是我们的Clonable接口.首先我们来思考一个问题:如何进行对象的拷贝?Object 类中存在一个 clone 方法, 调用这个方法可以创建一个对象的 "拷贝". 但是要想合法调用 clone 方法, 必须要先实现 Clonable 接口, 否

2021-10-01 21:03:32 8

原创 翻转单词顺序(简单难度)

目录题目概述(简单难度)思路与代码思路1(面试时最好不要用这个方法)代码示例1思路2(双指针法)代码示例2总结题目概述(简单难度)输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。示例 1:输入: “the sky is blue”输出: “blue is sky the”示例 2:输入: " hello world! "输出: “wo

2021-10-01 20:31:04 7

原创 将数组分成和相等的三个部分(简单难度)

目录题目概述(简单难度)思路与代码思路展现代码示例总结题目概述(简单难度)给你一个整数数组 arr,只有可以将其划分为三个和相等的 非空 部分时才返回 true,否则返回 false。形式上,如果可以找出索引 i + 1 < j 且满足 (arr[0] + arr[1] + ... + arr[i] == arr[i + 1] + arr[i + 2] + ... + arr[j - 1] == arr[j] + arr[j + 1] + ... + arr[arr.length - 1]) 就

2021-09-30 15:35:24 12

原创 java中的抽象类与接口(面试常考,重要)!!

目录抽象类语法规则注意事项(重要,全部掌握)抽象类的作用接口语法规则注意事项提示类实现多个接口接口使用实例抽象类语法规则在多态关于形状的代码例子中, 我们发现, 父类 Shape 中的 draw 方法好像并没有什么实际工作, 主要的绘制图形都是由Shape 的各种子类的 draw 方法来完成的. 像这种没有实际工作的方法, 我们可以把它设计成一个 抽象方法(abstract method), 包含抽象方法的类我们称为 抽象类(abstract class).abstract class Shape

2021-09-29 16:51:38 12

原创 杨辉三角(简单难度)

目录题目概述(简单难度)思路与代码思路展现代码示例总结题目概述(简单难度)给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。示例 1:输入: numRows = 5输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2:输入: numRows = 1输出: [[1]]附上leetcode链接:点击此处进入leetcode思路与代码思路展现题目中这个杨辉三

2021-09-28 14:31:22 8

原创 一篇带你掌握java中的多态!!

目录向上转型概念向上转型发生的时机(三种)直接赋值方法传参方法返回动态绑定(运行时绑定)(三级目录向上转型概念什么是向上转型,总的来说就是父类引用引用子类对象向上转型发生的时机(三种)那么什么时候会发生向上转型呢?我们来看,共有三种直接赋值1.class Animal { 2. public String name; 3. public Animal(String name) { 4. this.name = name; 5. } 6.

2021-09-27 20:13:00 34 1

原创 java中的继承

目录背景语法规则基本语法注意事项面试问题super关键字super关键字常见的三种用法用法1用法2super关键字的总结this和super关键字的对比四种访问权限(重要)默认权限protected权限更复杂的继承关系final关键字final关键字的三种用法用法1:final关键字修饰成员变量用法2:final关键字修饰类用法3:final关键字修饰方法背景代码中创建的类, 主要是为了抽象现实中的一些事物(包含属性和方法).有的时候客观事物之间就存在一些关联关系, 那么在表示成类和对象的时候也会存在

2021-09-25 21:12:23 10

原创 java中的包

目录包导入`系统包`中的类将类放到包中(自定义的包和类)操作步骤包的访问权限控制常见的系统包包包 (package) 是组织类的一种方式. 使用包的主要目的是保证类的唯一性.唯一性怎么证明呢?其实很简单:例如,在同一个包下,你在代码中写了一个 Test 类. 然后你的同事也可能写一个 Test 类. 如果出现两个同名的类, 就会冲突, 导致代码不能编译通过.因为这两个类在同一个包下.再来看一个情况:可以看到图中的两个类的名称虽然相同,但是并没有报错,原因是第一个TestDemo类的路径为com.

2021-09-25 17:17:36 108 2

原创 List接口

目录List的使用List官方文档ArrayList官方文档LinkedList官方文档常用方法List(线性表)ArrayList(顺序表)add方法关于对ArrayList的思考(扩容问题,重要)情况1:对ArrayList插入元素之前情况2:对ArrayList插入元素之后总结情况3:有参构造函数的情况addAll方法LinkedList(链表)List的使用List官方文档点击此处进入官方文档ArrayList官方文档点击此处进入官方文档LinkedList官方文档点击此处进入官方文档

2021-09-23 14:22:30 42 8

原创 预备知识---java中的包装类(装包与拆包)

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-09-06 09:57:24 19

原创 java之集合框架

目录介绍Collection接口以及其衍生Map接口以及其衍生每个接口实现类代表的含义二级目录三级目录介绍Collection接口以及其衍生集合是什么?简单点来说就是封装好的数据结构来看一张图,需要大家将里面的关系理清楚:各个颜色的分类:(分三种)三者之间的关系已经箭头的指向都要梳理清楚,如下图所示:Collection是集合的意思,用于存储"单个"元素,即将单个"元素"挨个一条一条存储,有三个接口扩展了(extends)了Collection接口,分别是List接口,Queue接

2021-09-05 19:33:19 39 1

原创 预备知识---java之泛型的探索

目录知识回顾泛型(了解)三级目录知识回顾在之前的学习中,我们曾自己实现过一个顺序表,如果想要温习的同学可以直接来我这篇博客进行翻阅:附上博客链接:点击此处进入博客之前我们对于顺序表的实现也是只能插入整形,不能插入其他类型的数据,那么现在假如我们想要实现一个顺序表是可以插入任何数据的,那么该怎样进行实现呢?来看我们的代码:我们只实现两个方法来表达我们想说的意思class MyArrayList1 { //定义一个Object类型的数组,用于存储所有类型的数据. //Object类是所

2021-09-05 19:21:09 25 1

原创 替换空格(简单难度)

目录题目概述(简单难度)思路与代码思路展现思路1(replace方法)代码示例思路2(toCharArray+append方法)代码示例总结题目概述(简单难度)请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."附上leetcode链接:点击此处进入leetcode思路与代码思路展现思路1(replace方法)直接使用reaplace方法将所有空格转换成%20.代码示例cla

2021-09-02 14:40:36 9

原创 反转字符串(最主要是说下库函数的使用问题)(简单难度)

目录题目概述(简单难度)思路与代码思路展现代码示例总结题目概述(简单难度)编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:["H","a","n","n","a",

2021-09-01 22:15:14 19

原创 一篇让你读懂java中的字符串(String)

目录创建字符串方式1方式2方式3三种方式的内存图方式1 方式2方式3总结理解池的概念回忆引用字符串判断相等判断字符串引用是否相等代码1代码2代码3代码4总结判断字符串内容是否相等变量与变量进行比较字符串常量与变量进行比较理解字符串不可变反射打破字符串不可变字符与字符串代码示例1:获取指定位置的字符代码示例2:将字符数组所有内容变为字符串进行输出代码示例3: 将字符数组部分内容变为字符串进行输出代码示例4: 字符串与字符数组的转换小练习:字符串的逆置字节与字符串代码示例1: 将整个字节数组转变为字符串代码示例

2021-09-01 20:11:39 505 4

原创 检查两个字符串数组是否相等(简单难度)

目录题目概述(简单难度)思路与代码思路展现代码示例总结题目概述(简单难度)给你两个字符串数组 word1 和 word2 。如果两个数组表示的字符串相同,返回 true ;否则,返回 false 。数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串。示例 1:输入:word1 = [“ab”, “c”], word2 = [“a”, “bc”]输出:true解释:word1 表示的字符串为"ab" + “c” -> “abc”word2 表示的字符串为 “a” + “

2021-09-01 20:02:45 35

原创 字符串中的单词数(简单难度)

目录题目概述(简单难度)思路与代码思路展现代码示例总结题目概述(简单难度)统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例:输入: “Hello, my name is John”输出: 5解释: 这里的单词是指连续的不是空格的字符,所以 “Hello,” 算作 1 个单词。附上leetcode链接:点击此处进入leetcode思路与代码思路展现对于这种简单题,明显是要考查对边界条件的考虑,比如给定的字符串可能

2021-08-31 12:06:46 36

原创 字符串连接(中等难度)

目录题目概述(中等难度)思路与代码思路展现代码示例总结题目概述(中等难度)描述不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来。输入描述:每一行包括两个字符串,长度不超过100。输出描述:可能有多组测试数据,对于每组数据, 不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来。 输出连接后的字符串。示例1输入:abc def输出:abcdef附上牛客网链接:点击此处进入牛客网思路与代码思路展现注意牛客网的这道题目它是没有给

2021-08-31 10:33:53 9

原创 链表的基本概念

目录链表的定义链表的结构单向不带头非循环链表(重点掌握,面试常考)单向带头非循环链表单向带头循环链表自己实现一个链表链表的定义​​​链表就像每个节点串起来一样构成了一串,每个节点都是一个节点对象其中我们对于每个节点会去划分域,分为data域跟next域两种.data代表数值域,next代表引用,用于存取下一个节点的地址.链表的结构单向不带头非循环链表(重点掌握,面试常考)单向带头非循环链表单向带头循环链表自己实现一个链表...

2021-08-23 17:33:30 38 5

原创 就业重点(必看!!)

这里写目录标题简历上所应包含的东西个人信息求职意向实习/获奖经历IT技能项目经验个人经验简历模板选择不断的更新迭代简历在书写中的注意事项怎么投递简历?投递渠道投递简历的注意事项简历上所应包含的东西这六项中个人评价可有可无,凑字数用的,其他五个都必须有个人信息应包含以下内容:姓名(生僻字注音)电话(一定要写对电话和记得写电话,尤其关闭号码拦截)邮箱学校专业学历照片(证件照,早点照为好,穿西服去照)政治面貌(酌情去写):可以写中共党员求职意向清晰明确的告诉面试官:求职岗位纸质版的

2021-08-23 16:49:28 16

原创 旋转数组的最小数字(简单难度)

目录题目概述(简单难度)思路与代码思路展现代码示例总结题目概述(简单难度)把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0附上leetcode链接:点击此处进入leetcode思路与代码思路展现代码示例总结1:

2021-08-22 00:34:42 19

原创 Leetcode 1:两数之和

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

2021-08-21 23:53:38 5

原创 Git_码云_导入GitHub项目

我们的码云的功能还是很强大的,不但可以自己创建仓库,还可以将其他地方的仓库导入,例如码云中可以导入我们Github中的远程代码库以及Gitlab中的远程代码库:那么此处我们就拿GitHub

2021-08-21 22:03:28 15

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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