自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Teacher_HENG

操千曲而后晓声,观千剑而后识器

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

原创 【图解数据结构与算法+LeetCode分类讲解】新课录制中......

数据结构+算法+LeetCode分类讲解!

2023-02-19 20:42:26 225

原创 【图解数据结构与算法】视频教程正式上线B站,持续更新中......

本主【图解数据结构与算法(Java语言描述)】B站传送门 https://www.bilibili.com/video/BV1ea4y1e7v7/

2020-05-16 20:08:59 933

原创 IT学生学习指南

本文主要为了计算机相关专业的学生而写。内容是从本博主的工作经验和教学经验当中总结出来的一些干货,涵盖了从大一到大四期间学生所遇到的常见问题,包括如何找到满意的工作、如何选择适合自己的工作岗位、如何制定自己的学习计划、如何分辨自身适合考研还是就业、女生的IT之路怎么走、如何锻炼自己的技术等等大学生最关心的问题。如果大家觉得文本值得一看,那就请推荐给身边那些还在迷茫中的孩子们吧!

2020-03-31 16:19:09 19742 16

原创 Java学习书籍推荐

小白级别《计算机是怎么跑起来的》链接:https://pan.baidu.com/s/1HaR8W5yhc6bRoEPa_f4P5A提取码:b0ec《程序是怎么跑起来的》链接:https://pan.baidu.com/s/1E-AFJSBAF3c_kqA1vQoeqw提取码:f99e复制这段内容后打开百度网盘手机App,操作更方便哦入门级别《Java语言程序...

2020-03-26 11:28:15 2168 2

原创 【栈与队列】232. 用栈实现队列

原题链接:https://leetcode-cn.com/problems/implement-queue-using-stacks/分析和 225. 用队列实现栈 一样,只不过交换一下思考的角度而已同样我们需要两个栈来实现队列入队操作:此处一律默认将元素入栈到stackA中出队操作:无非获取stackA的栈底元素1,则将所有元素从stackA出栈再入栈stackB,sta...

2020-03-12 10:32:18 588

原创 【栈与队列】225. 用队列实现栈

原题链接:https://leetcode-cn.com/problems/implement-stack-using-queues/队列是先进先出,栈是先进后出但是两者共同点是,无论入队操作还是入栈操作,都是将元素进行尾插法进入的无非出队操作的是第一个元素,出栈操作的是最后一个元素栈的出栈操作无非就是获取队列的队尾元素如果使用队列实现出栈操作,只能先将队尾元素之前的元素移...

2020-03-12 09:59:09 538

原创 【数组相关】766. 托普利茨矩阵

原题链接:https://leetcode-cn.com/problems/toeplitz-matrix/主要找到每个从左上到右下的开头即可,所以大致可以将矩阵分为两个部分绿色区域我们设定开头从第1行找;黄色区域我们设定开头从第1列找(抛去第1行第1列)如上图所示,先找到绿色区域的开头,然后在从每一个开头开始向右下连续相等判断;再找到黄色区域的头,然后在从每一个开头开始向...

2020-03-11 10:16:20 549

原创 【数组相关】35. 搜索插入位置

原题链接:https://leetcode-cn.com/problems/search-insert-position/典型的二分查找算法,不太懂的自行百度吧class Solution { public int searchInsert(int[] nums, int target) { if(nums==null||nums.length==0){ ...

2020-03-11 09:57:24 448

原创 【数组相关】724. 寻找数组的中心索引

原题链接:https://leetcode-cn.com/problems/find-pivot-index/从左到右一个个找吧,只不过并不需要每次寻找一个中心索引,都要计算左边和右边的和我们可以先将数组的总和 sum 求出来,如示例1所示,总和 sum=28接着来看当中心索引 i=0 时 左边的和 leftSum=0 右边的和 rightSum=sum-leftSum-n...

2020-03-11 09:52:44 512

原创 【数组相关】674. 最长连续递增序列

原题链接:https://leetcode-cn.com/problems/longest-continuous-increasing-subsequence/同样还是双指针的应用,思路和 【209. 长度最小的子数组】很像设置maxCount为最大的连续长度maxCount=1(一个数字也算连续)设置count为当前的连续长度,如果count>maxCount 则更新max...

2020-03-11 09:34:32 176

原创 【数组相关】209. 长度最小的子数组

原题链接:https://leetcode-cn.com/problems/minimum-size-subarray-sum/双指针滑窗技巧的典型应用设定一个长度len=0,用来统计最短的数组长度;设定一个sum=0,用来计算和;s=7;然后从第1个元素开始,来吧此时sum=sum+nums[0]=2,不满足>=s,则接着往后加此时sum...

2020-03-11 09:07:02 193

原创 【数组相关】80. 删除排序数组中的重复项 II

原题链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array-ii/该题思路借鉴【283. 移动零】class Solution { public int removeDuplicates(int[] nums) { int i = 0; for (int n...

2020-03-05 11:20:40 135

原创 【数组相关】66. 加一

原题链接:https://leetcode-cn.com/problems/plus-one/不建议将数组中的数字拼接成整数计算,这样的话会导致整形溢出。在操作的时候,注意一下进位的问题例如[1,2,9]+1=[1,3,0] 例如[1,9,9]+1=[2,0,0] 特殊的[9,9,9]+1=[1,0,0,0]也就是说如果数组中全是9,则计算出来的数组长度比原先多1,且第一个元...

2020-03-05 11:09:05 140

原创 【数组相关】240. 搜索二维矩阵 II

原题链接:https://leetcode-cn.com/problems/search-a-2d-matrix-ii/不利用特性的话,遍历二维数组查找,时间复杂度为O(m*n);利用特性1,每行都进行一次折半查找,那么我们的时间复杂度为O(m*logn);那如果加上特性2呢?问题是如何利用特性2。matrix[0][0]也就是1,右边比它大,下边比它也大; matrix[0...

2020-03-05 10:40:14 160

原创 【数组相关】88. 合并两个有序数组

原题链接:https://leetcode-cn.com/problems/merge-sorted-array/该题的核心问题是,到底是从左到右遍历操作数据,还是从右到左遍历。不妨先设定一个规则,如果nums2中的某个元素大于等于nums1中的某个元素,则移动nums2中的该元素;否则移动nums1中的元素。按照从左到右遍历来说,问题就在于,nums2[0]也就是2,nums1[...

2020-03-05 10:18:53 166

原创 【数组相关】1013. 将数组分成和相等的三个部分

原题链接:https://leetcode-cn.com/problems/partition-array-into-three-parts-with-equal-sum/反证法,就假设当前数组可以被分为3部分,所以先计算总和 sum ,在计算每个部分的值 key=sum/3然后数组从左到右遍历,每遍历一个元素,则让key减去它,直到key减为0,计数出现一组 group=1,key再...

2020-02-20 22:15:13 269

原创 【数组相关】485. 最大连续1的个数

原题链接:https://leetcode-cn.com/problems/max-consecutive-ones/借助选择排序的思想,当前和之后的元素进行比较,如果连续是1就累加,最终得到最大的累加即结果动画如下:class Solution { public int findMaxConsecutiveOnes(int[] nums) { if ...

2020-02-20 21:57:07 226

原创 【数组相关】26. 删除排序数组中的重复项

原题链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/此题思路借鉴【283. 移动零】class Solution { public int removeDuplicates(int[] nums) { int n = 0; for(int i = 1...

2020-02-20 01:16:41 139

原创 【数组相关】27. 移除元素

原题链接:https://leetcode-cn.com/problems/remove-element/该题思路借鉴【283. 移动零】,将283移动的0元素当成这里的指定元素 val 即可,哈哈,直接上代码了class Solution { public int removeElement(int[] nums, int val) { if (nums =...

2020-02-20 01:12:25 140

原创 【数组相关】283. 移动零

原题链接:https://leetcode-cn.com/problems/move-zeroes/关键信息:将0移动到数组后方 保证非零元素相对位置 必须原地修改解法类似于选择排序,从第1个0元素开始,向后找直到第1个非0元素,交换两者位置之后,接着移动到第2个0元素继续向后找非0元素两者交换,依次类推,直到所有数据找完为止。但是如果按照上述步骤套用选择排序的代码去做的话,...

2020-02-20 01:04:10 180

原创 【数组相关】169. 多数元素

原题链接:https://leetcode-cn.com/problems/majority-element/此题需要我们找的就是数组中出现次数大于数组长度一半的数字,并且保证该数字一定存在如何找出来的,有些想法是将数组进过排序后,查找连续相等最长的那个数字即可比如数组[2,2,1,1,1,2,2]经过排序后得到[1,1,1,2,2,2,2],那么接下来只需要遍历判断那个数字连续相...

2020-02-18 22:30:56 213

原创 Java练习题五【数组】

目录练习题53.计算数字的出现次数练习题54.打印不同的数练习题55.是否排好序了练习题56.游戏:豆机练习题57.完全相同的数组练习题58.模式识别:四个连续相等的数练习题59.合并两个有序列表练习题60.游戏:猜字游戏练习题53.计算数字的出现次数import java.util.Scanner;class Demo53{ publ...

2020-02-18 04:54:18 731

原创 【数组相关】905. 按奇偶排序数组

原题链接:https://leetcode-cn.com/problems/sort-array-by-parity/此题的目的就是将数组中的元素从左到右按照偶数在前,奇数在后进行排布对于类似的一前一后的问题,我们可以使用头尾指针来解决大致思想如何呢,看图说明:start为头指针开始指向第一个元素,即 start=0end为尾指针开始指向最后一个元素,即 end=A.l...

2020-02-18 04:29:37 574

原创 【数组相关】1313. 解压缩编码列表

原题链接:https://leetcode-cn.com/problems/decompress-run-length-encoded-list/示例其实已经给出了详细的解释,无非角标为偶数位的数字是某个元素出现的次数所以当我们在解压的时候,得到的新数组arr的长度len就是这些角标为偶数位的数字之和,即 len=nums[0...

2020-02-18 03:40:09 164

原创 【数组相关】1295. 统计位数为偶数的数字

原题链接:https://leetcode-cn.com/problems/find-numbers-with-even-number-of-digits/此题唯一的难点在于计算数组当中每个数字的长度如果借助String解题的话,会更加方便一点,将数组中的每个数据nums[i]拼接上一个空串""String s=nums[i]+"";紧接着获取s的长度即可得到数字的长度...

2020-02-18 03:25:26 338

原创 【数组相关】561. 数组拆分I

原题链接:https://leetcode-cn.com/problems/array-partition-i/min(a,b)函数返回的结果是a和b之间的最小值就拿题目给出的数组[1,4,3,2]来说,可能的所有组合有min(1,2)+min(3,4)=1+3=4 min(1,3)+min(2,4)=1+2=3 min(1,4)+min(2,3)=1+2=3从中可以看出第1...

2020-02-18 03:08:48 173

原创 校招选择题汇总【树(1)】含答案解析

有问题的下方评论或私聊1.二叉树的第k层的结点数最多为(D)A.2^k - 1B.2*k+1C.2*k-1D.2^(k-1)解析:第k层节点最多2^(k-1)个节点,k层二叉树最多2^k-1个节点2.设某棵二叉树中只有度数为0和度数为2的结点且度数为0的结点数为n,则这棵二叉中共有(C)个结点A.2nB.n+lC.2n-1D.2n+l解析:二叉树...

2020-02-18 02:47:32 5117

原创 LeetCode讲解专栏说明

此专栏仅大致讲解部分LeetCode编程题思路,同时会讲解代码不一定每个题都是最优解,仅提供一些常见思路,请大家海涵如部分题有更好易懂的解法,则同时奉上题目按照考点类型划分,目前未整理,如需请自行翻阅查找,等待完工后会推出整理目录如有纰漏的地方,请大家评论纠正,请大家见谅这将是一次长征,希望我能及时更新...

2020-02-18 02:46:52 183

原创 算法(2)排序之冒泡排序

冒泡排序核心思路:每一个元素 j 和其后面一个元素 j+1 比较,如果前者 j 大则交换,无论交换与否,让后面元素 j+1 何其下一个元素 j+2 接着进行比较看图说明,不想写流程了设置指针 i,j ,i 从角标 0 开始,到 n-1 结束,j 每次从 1 开始,到 n-i-1 结束其实 i 表示的是轮数第1轮,i 从 0 开始,j 从 0 开始,到 n-i-1(5-0-1...

2019-05-02 23:52:28 317

原创 算法(1)排序之选择排序

选择排序核心思路(默认从小到大排序):每一轮中当前位置不变,当前位置元素挨个和后面元素进行比较,如果前者大后者小,交换元素,接着向后比较直到每个元素都和后面元素比较完成,结束选择排序的算法流程:创建数组(或链表)并初始化数据,数组长度为 n 设定双指针 i 和 j 开始外层循环 i ,i 从角标 0 开始,到 n-1 结束 开始内层循环 j ,j 从 i+1 开始,到 n 结...

2019-05-02 16:32:15 297 1

原创 数据结构(3)双端栈的动态数组实现ArrayStackDoubleEnd

欢迎来到第三章在此处稍微回顾一下前两章的内容在第一章我们从“零”开始实现了一个ArrayList线性表,我把它称之为是一种底层数据结构在第二章我们用ArrayList实现了一个栈结构ArrayStack,通过底层数据结构的封装,继而产生出了更加高级的数据结构所以,请大家注意,在数据结构的广袤世界中,高级的数据结构就是这样子由底层数据结构一层一层封装起来的先比如后面要学的Tr...

2019-04-29 17:18:10 503 1

原创 数据结构(2)栈的动态数组实现ArrayStack

栈本身是一种特殊的线性表,我们上一章说到,我们可以在线性表中的任意位置进行增删查改操作,前提是这个位置是存在的。那么栈又有何特殊性呢?在栈里面,我们只能对其一端进行增删查改的操作,这个端我们称之为栈顶,另一端不进行操作的我们称之为栈底栈:又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈...

2019-04-28 19:55:58 368

原创 数据结构(1)线性表的动态数组实现ArrayList

1.何为线性表首先说什么是线性表线性表的定义:线性表中数据元素之间的关系是一对一的关系,即除了第一个元素没有前驱,最后一个元素没有后继之外,其余元素既有唯一前驱和唯一后继,如下图所示搞懂什么是线性表之后,我们再考虑一个问题,线性表能干啥?手机上的通讯录是不是符合一个线性表的定义?刺激战场中背包内容是不是符合一个线性表的定义?学校中的成绩单是不是符合一个线性表...

2019-04-28 16:56:38 718 2

原创 LeetCode211.添加与搜索单词-数据结构设计(Java实现)

链接:https://leetcode-cn.com/problems/add-and-search-word-data-structure-design/class WordDictionary { private Node root; public WordDictionary() { root=new Node(); } ...

2019-04-26 20:06:02 380

原创 LeetCode347.前K个高频元素(Java实现)

链接:https://leetcode-cn.com/problems/top-k-frequent-elements/class Solution { private class Freq implements Comparable<Freq>{ int num,freq; public Freq(int num,int freq){ this.num...

2019-04-26 20:04:45 652 1

原创 LeetCode677.键值映射(Java实现)

链接:https://leetcode-cn.com/problems/map-sum-pairs/ class MapSum { private Node root; public MapSum() { root=new Node(); } public void insert(String word, int val) {...

2019-04-26 20:03:23 408

原创 LeetCode766.托普利茨矩阵(Java实现)

链接:https://leetcode-cn.com/problems/toeplitz-matrix/class Solution { public boolean isToeplitzMatrix(int[][] matrix) { if(matrix==null){ return false; } for(int i=0;i<matrix.l...

2019-04-26 20:02:22 415

原创 LeetCode349.两个数组的交集(Java实现)

链接:https://leetcode-cn.com/problems/intersection-of-two-arrays/class Solution { public int[] intersection(int[] nums1, int[] nums2) { TreeSet<Integer> set=new TreeSet<Integer&...

2019-04-26 20:01:22 724

原创 LeetCode804.唯一摩尔斯密码词(Java实现)

链接:https://leetcode-cn.com/problems/unique-morse-code-words/class Solution { public int uniqueMorseRepresentations(String[] words) {String[] codes={".-","-...","-.-.","-..",".","..-.","--.","....

2019-04-26 20:00:09 622

原创 LeetCode88.合并两个有序数组(Java实现)

链接:https://leetcode-cn.com/problems/merge-sorted-array/class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int index1=m-1; int index2=n-1; int i...

2019-04-26 19:54:10 794

空空如也

空空如也

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

TA关注的人

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