
Leetcode
文章平均质量分 54
Leetcode,披荆斩棘
Bert.King
这个作者很懒,什么都没留下…
展开
-
矩阵寻找目标值的技巧
抛开对知识、学问的依赖心理,是你走上人生康庄大道的关键。本篇文章所涉及的算法题:1351. 统计有序矩阵中的负数240. 搜索二维矩阵 II74. 搜索二维矩阵1. 解题技巧首先区分 矩阵 和 方阵定义行(Row)和列(Column):rows = matrix.length;cols = martrix[0].length;矩阵的遍历for(int i = 0;i < rows;i++){ for(int j = 0; j < c.原创 2022-05-08 02:00:00 · 773 阅读 · 0 评论 -
2022-5-5 每日一题之(乘积小于 K 的子数组)
有所成就的人,都从最重要的事情做起。而且,一次只做一件事情。713. 乘积小于 K 的子数组给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。示例 1:输入:nums = [10,5,2,6], k = 100输出:8解释:8 个乘积小于 100 的子数组分别为:[10]、[5]、[2],、[6]、[10,5]、[5,2]、[2,6]、[5,2,6]。需要注意的是 [10,5,2] 并不是乘积小于 100 的子数组。1..原创 2022-05-05 23:22:01 · 209 阅读 · 0 评论 -
Leetcode关于加法运算的总结
一个人对行为本身的意愿和他对于行为带来的结果的意愿,两者都是一个人最终是否行动的动机因素。每一个因素都有自身的拉力,若两个力是相对的,则其中更强大的因素将会决定一个人的行为。415. 字符串相加67. 二进制求和2. 两数相加445. 两数相加 II66. 加一989. 数组形式的整数加法1. 加法运算真正在刷题的过程中,我们只需要记住几点即可:低位到高位,逐位求和的算法为:sum = x + y + carry.( x和y 分别来表示每位的数值,carry 表示进位,默认为0.原创 2022-05-05 23:04:39 · 309 阅读 · 0 评论 -
双指针解决两数之和的问题
很多事情大家都心知肚明,只是聪明人不说出来关于两数之和的问题,一般都是给定数组nums和目标值target, 处理这种问题一般需要注意以下两点:数组是否有序;给定目标值target,根据两数之和与target的大小情况展开讨论:- 等于target- 小于target- 大于target返回值是下标 or 方案数如果需要返回值是下标,则在数组无序的情况下,我们是不能通过排序 和双指针方案来解决的。结合Leetcode的题目,我们对上面所列举的情况逐一来展开讨论。.原创 2022-05-01 23:56:56 · 2500 阅读 · 0 评论 -
Leetcode关于单词距离的问题
Leetcode上关于单词距离的题目都在这里啦!!!原创 2022-04-18 23:38:56 · 344 阅读 · 0 评论 -
举一反三之将BST变平衡
二叉搜索树的中序遍历是递增序列。原创 2022-02-19 22:17:16 · 255 阅读 · 0 评论 -
举一反三系列之回文链表
子曰:“不愤不启,不悱不发。举一隅不以三隅反,则不复也。”现在互联网面试已经越来越卷,同时算法考察又是很多程序猿难以逾越的鸿沟,这里为了帮助大家节约时间,推出举一反三系列文章。234. 回文链表为了节约时间提高效率,所以只提供最优解。此题的最优解要求我们首先能解决 876. 链表的中间结点 和 206. 反转链表。1. 解题思路找到链表的中间结点;翻转后半部分;同步遍历对比;2. 代码实现class Solution { public boolean isPalindr.原创 2022-02-19 11:38:11 · 266 阅读 · 0 评论 -
旋转方阵So easy
在刷题的过程中,积累了矩阵的一些常见的操作,这里特点做一下笔记,以供后续进阶学习。1. 沿主对角线翻转矩阵题目描述:2. 原地沿副对角线翻转矩阵原创 2022-02-09 15:34:20 · 973 阅读 · 0 评论 -
二叉树中的最值问题
543. 二叉树的直径 - E687. 最长同值路径 - M124. 二叉树中的最大路径和这三道题使用同一种套路:递归1. 二叉树直径二叉树的直径:原创 2022-01-11 12:36:14 · 224 阅读 · 0 评论 -
关于链表的中间节点问题的坑
876. 链表的中间结点PS: 如果有两个中间结点,则返回第二个中间结点。如[1,2,3,4] 返回 3class Solution { public ListNode middleNode(ListNode head) { if(head == null || head.next == null) return head; ListNode slow = head; ListNode fast = head; while.原创 2021-06-21 22:19:33 · 147 阅读 · 2 评论 -
最近公共祖先(LCA)问题
236. 二叉树的最近公共祖先class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if(root == null || root.val == p.val || root.val == q.val){ return root; } TreeNode left = lowestCommon.原创 2021-06-21 22:12:41 · 144 阅读 · 0 评论 -
Leetcode突破5W大关
世事纷纷一局棋,输赢未定两争持。须臾局罢棋收去,毕竟谁赢谁是输?重要时刻:2021-6-7原计划五一小长假就可以进入5W,没想到居然晚了这么久… 后面越来越卷了啊原创 2021-06-07 10:00:59 · 127 阅读 · 0 评论 -
二叉树的右视图
199. 二叉树的右视图层次遍历 + 最右节点public class Solution { /** * @param root: the root of the given tree * @return: the values of the nodes you can see ordered from top to bottom */ public List<Integer> rightSideView(TreeNode root) { .原创 2021-06-04 00:02:34 · 328 阅读 · 0 评论 -
Leetcode关于二(N)叉树的高(深)度问题
剑指 Offer 55 - I. 二叉树的深度104. 二叉树的最大深度树的最大深度其实就是树的深度。(PS: 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。)1.1 直接递归解法:这道题的递归写法就算猜都能猜出来… public int maxDepth(TreeNode root) { if(root == null){ return 0; } int left = maxDepth(root.lef..原创 2021-06-03 02:29:14 · 623 阅读 · 1 评论 -
翻转二叉树
Homebrew的作者Max Howell 应聘谷歌的面试题:226. Invert Binary Tree吃瓜群众请点击这里:如何看待 Max Howell 被 Google 拒绝?226. 翻转二叉树Given the root of a binary tree, invert the tree, and return its root.(给出一个二叉树的根节点,翻转此树并返回其根节点)1. 递归版本class Solution { public TreeNode inve.原创 2021-06-03 01:49:50 · 189 阅读 · 0 评论 -
数组的最值问题
人一旦悟透了就会变得沉默,不是没有与人相处的能力,而是没有了逢人作戏的兴趣.解决这些问题如果需要对数组进行排序,那不好意思…1. 求数组的最大值 public int getMax(int[] array) { // 注意这里,求最大值时,将初始值设置为Integer.MIN_VALUE int max = Integer.MIN_VALUE; for(int n : array){ max = Math.max(max.原创 2021-05-07 21:43:21 · 152 阅读 · 0 评论 -
Leetcode突破6W大关
藏巧于拙,用晦而明;寓清于浊,以屈为伸;重要时刻:2021-4-26五一假期即将到来,争取能在假期中抽出时间来刷更多的题。另外打算给自己送一个生日礼物。原创 2021-04-26 09:31:17 · 122 阅读 · 0 评论 -
Leetcode关于树的层次遍历的题目
在 Leetcode中关于树的遍历的题目 中已经对树的常见遍历方法(前,中,后序遍历)做了比较详尽的讲解。前中后序遍历用栈,层次遍历用队列本篇文章主要来讨论: 树的层次遍历102. 二叉树的层序遍历107. 二叉树的层序遍历 II429. N 叉树的层序遍历前中后序遍历使用的是DFS(深度优先搜索),而层次遍历使用的是BFS(广度优先遍历)DFS 要用到栈BFS 要用到 队列深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索 树或 图 的算.原创 2021-04-20 09:06:25 · 162 阅读 · 0 评论 -
Leetcode中关于树的遍历的题目
对于非计算机专业的朋友来讲,对于数据结构中的树不甚了解。建议可以读一些数据结构方面的书来进阶一下。数据结构主要对于 二叉树 进行展开谈论的。在面试的过程中,算法是绕不开的话题(如今互联网圈也是越来越卷啦)。这篇文章主要来聊一下关于Leetcode上关于树的遍历的相关题目。关于树的遍历方法,主要有以下四种:前序遍历 (根 --> 左 --> 右)中序遍历 (左 --> 根 --> 右)后序遍历 (左 --> 右 --> 根)层次遍历这里需要明确一.原创 2021-04-20 00:47:30 · 205 阅读 · 0 评论 -
Leetcode的二叉搜索树
二叉搜索树二叉搜索树的特点:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。98. 验证二叉搜索树108. 将有序数组转换为二叉搜索树501. 二叉搜索树中的众数96. 不同的二叉搜索树95. 不同的二叉搜索树 II...原创 2021-04-18 23:48:59 · 143 阅读 · 0 评论 -
Leetcode突破7W大关
两种必然性逆向而行,是时间倒流的本质。重要时间:2021-4-14PS:现在Leetcode也很卷,清明节出去玩了3天,就发现排名直线下降。(虽然排名没用,但是在升级打怪的刷题过程中,给自己找个乐子岂不妙哉)。...原创 2021-04-14 07:04:43 · 107 阅读 · 0 评论 -
Leetcode中使用BFS解决二叉树相关题目的行动指南
历史从不支持那种仅凭善意就能迎来盛世的观点。广度优先搜索BFS的算法解题套路掌握了BFS的模板,我们首先可以拿经典的102. 二叉树的层序遍历练手。进一步的掌握Leetcode的相关题目。1. 二叉树BFS的代码模板我相信对于计算机专业相关的朋友,可能依稀记得BFS和DFS在数据结构中的《图》章节进行引入介绍的。其实对于这两种遍历方式,真正需要我们关注的是:核心思想和使用场景。这里仅仅介绍一下用于遍历二叉树的BFS模板,后面再深入讲解其它地方的使用://第一步: 要使用『队列』这种数据.原创 2021-04-14 00:05:05 · 178 阅读 · 2 评论 -
Leetcode突破8W大关
把看不起的人看起是一种格局重要时间:2021-3-31原创 2021-03-31 10:07:37 · 121 阅读 · 0 评论 -
Leetcode 展望2021
码不停题在2020这一极不平凡的一年中,我踏上了力扣LeeCode的征途中,取得了微不足道的进步。原创 2021-01-16 14:28:24 · 177 阅读 · 0 评论 -
Leetcode挺进10W
人能克己身无患,事不欺心睡自安。 继发表 Leetcode 展望2021 两个月之后,终于再一次挺进 10W 大关。遂有此记,激励自己。但与所立 FLAG (5K-) 还是有很长的路要走。(PS: 及时当勉励,岁月不待人)诚如下面这本书名所讲:你与富人之间,差距不只是钱。还有算法题量…路漫漫其修远兮,吾将上下而求索。...原创 2021-03-18 11:45:29 · 552 阅读 · 0 评论 -
Leecode674 - daily05
人人避暑走如狂,独有禅师不出房;非是禅房无热到,为人心静身即凉。心静自然凉—— 清凉一夏1. 题目674. 最长连续递增序列给定一个未经排序的整数数组,找到最长且连续的的递增序列。2. 解法这里我强行使用了双指针套路,但是这里最后在调试的时候发现快慢指针一直需要同步成长,最后的代码就成了这个样子。(PS:这里也间接说明——该题不应该使用双指针套路)需要注意的是:这里的count是用来存储数组中某一部分的连续递增序列的临时长度。(PS:可能有同学会有疑问,为什么c.原创 2020-05-13 00:45:34 · 241 阅读 · 0 评论 -
LeeCode 27 - daily04
每临大事有静气,不信今时无古贤1. 题目27. 移除元素给你一个数组 nums 和一个值 val,你需要 原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。这道题与 LeeCode 26 - daily03同属于数组 类型的题目。且在解法上也存在相同之处。本题笔者也采用 双指针套路2. 解法注意 原地,往往意味着:拷贝覆盖2.1 过程讲解示例:nums = [3,2,2,3] value = 3low = 0 ; fast = 0; 结果:nums = [.原创 2020-05-12 00:37:49 · 195 阅读 · 0 评论 -
LeeCode 26 - daily03
无知者无畏1. 题目26.删除排序数组中的重复项给定一个排序数组,你需要在 原地删除 重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。2. 解法:这里采用 快慢指针 的做法:个人见解:双指针更喜欢结合while循环使用,更直观让人看出双指针的本质。(PS: 不喜勿喷,因本人在刷题时有时候看for的双指针解法时大脑总的反应一下)public int removeDuplicates(int[] nums){ if(nums == null) return 0; .原创 2020-05-10 23:32:37 · 169 阅读 · 0 评论 -
LeeCode 693 - daily02
记一段《能力陷阱》的一段话:我们很乐于去做那些我们擅长的事,于是就会一直去做,最终就使得我们会一直擅长那些事。做得越多,就越擅长,越擅长就越愿意去做。这样的一个循环能让我们在这方面获得更多的经验,但却容易陷入能力陷阱,在其他方面无法突破。温水煮青蛙—— 每个人都要特别警惕这种能力陷阱,避免把大量时间花在日常琐事上。与君共勉关于二进制的问题主要涉及以下几种操作:与或非异或左...原创 2020-04-01 22:55:28 · 140 阅读 · 0 评论 -
LeeCode 231 - daily01
有为有不为,知足知不足锐气藏于胸,和气浮于面才气见于事,义气施于人— 丰子恺 业精于勤…题目描述:给定一个整数,编写一个函数来判断它是否是 2 的幂次方。Leecode 231 该题在小米公司,微软公司都曾被面过。但是该题在面试过程中,真的不容易想到最优解。不过算法是一步一步演进的,不可能一步到位。1. 普通解法public boolean isPowerOfT...原创 2020-03-30 23:16:57 · 186 阅读 · 0 评论