zl程序教程

leetCode-0001

  • LeetCode每日一题-1:反转链表

    LeetCode每日一题-1:反转链表

    题目描述反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL解题思路链表一般都是用迭代或是递归法来解决,而且一般都是构造双指针、三指针,比如反转链表或是DP动态规划。双指针迭代我们可以申请两个指针,第一个指针叫 pre,最初是指向 null 的。第二个指针 cur 指向 hea

    日期 2023-06-12 10:48:40     
  • LeetCode每日一题-4:合并两个有序链表

    LeetCode每日一题-4:合并两个有序链表

    题目描述:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 复制思路解析:递归法:递归函数必须要有终止条件,否则会出错;递归函数先不断调用自身,直到遇到终止条件后进行回溯,最终返回答案。根据以上规律考虑本题目:终止条件:当两个链表都为空时,表示我们对链表

    日期 2023-06-12 10:48:40     
  • LeetCode每日一题-6:k个一组翻转链表

    LeetCode每日一题-6:k个一组翻转链表

    题目描述:给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->1-

    日期 2023-06-12 10:48:40     
  • ☆打卡算法☆LeetCode 207. 课程表   算法解析

    ☆打卡算法☆LeetCode 207. 课程表 算法解析

    大家好,我是小魔龙,Unity3D软件工程师,VR、AR,虚拟仿真方向,不定时更新软件开发技巧,生活感悟,觉得有用记得一键三连哦。一、题目1、算法题目“给定一个学期应该学习的课程数,判断是否可能完成所有课程的学习。”题目链接:来源:力扣(LeetCode)链接: 207. 课程表 - 力扣(LeetCode)2、题目描述你这个学期必须选修 numCourses 门课程,记为 0 到 numCour

    日期 2023-06-12 10:48:40     
  • ☆打卡算法☆LeetCode 212. 单词搜索 II  算法解析

    ☆打卡算法☆LeetCode 212. 单词搜索 II 算法解析

    大家好,我是小魔龙,Unity3D软件工程师,VR、AR,虚拟仿真方向,不定时更新软件开发技巧,生活感悟,觉得有用记得一键三连哦。一、题目1、算法题目“给定一个二维字符网格和一个单词列表,返回二维网格中的所有单词。”题目链接:来源:力扣(LeetCode)链接: 212. 单词搜索 II - 力扣(LeetCode)2、题目描述给定一个 m x n 二维字符网格 board 和一个单词(字符串)列

    日期 2023-06-12 10:48:40     
  • ☆打卡算法☆LeetCode 218. 天际线问题 算法解析

    ☆打卡算法☆LeetCode 218. 天际线问题 算法解析

    大家好,我是小魔龙,Unity3D软件工程师,VR、AR,虚拟仿真方向,不定时更新软件开发技巧,生活感悟,觉得有用记得一键三连哦。一、题目1、算法题目“给定所有建筑物的位置和高度,返回这些建筑物形成的天际线。”题目链接:来源:力扣(LeetCode)链接: 218. 天际线问题 - 力扣(LeetCode)2、题目描述城市的 天际线 是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑

    日期 2023-06-12 10:48:40     
  • ☆打卡算法☆LeetCode 220. 存在重复元素 III 算法解析

    ☆打卡算法☆LeetCode 220. 存在重复元素 III 算法解析

    大家好,我是小魔龙,Unity3D软件工程师,VR、AR,虚拟仿真方向,不定时更新软件开发技巧,生活感悟,觉得有用记得一键三连哦。一、题目1、算法题目“给定一个整数数组和一个整数k和t,判断数组中是否存在两个不同下标的索引使得abs(nums[i] - nums[j]) <= t ,同时又满足 abs(i - j) <= k,存在返回true。”题目链接:来源:力扣(LeetCode)

    日期 2023-06-12 10:48:40     
  • ☆打卡算法☆LeetCode 224. 基本计算器 算法解析

    ☆打卡算法☆LeetCode 224. 基本计算器 算法解析

    大家好,我是小魔龙,Unity3D软件工程师,VR、AR,虚拟仿真方向,不定时更新软件开发技巧,生活感悟,觉得有用记得一键三连哦。一、题目1、算法题目“给定一个字符串表达式,实现一个基本计算器来计算并返回它的值。”题目链接:来源:力扣(LeetCode)链接: 224. 基本计算器 - 力扣(LeetCode)2、题目描述给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。注意:

    日期 2023-06-12 10:48:40     
  • ☆打卡算法☆LeetCode 226. 翻转二叉树 算法解析

    ☆打卡算法☆LeetCode 226. 翻转二叉树 算法解析

    大家好,我是小魔龙,Unity3D软件工程师,VR、AR,虚拟仿真方向,不定时更新软件开发技巧,生活感悟,觉得有用记得一键三连哦。一、题目1、算法题目“给定一个二叉树的根节点,翻转这颗二叉树,返回其根节点。”题目链接:来源:力扣(LeetCode)链接: 226. 翻转二叉树 - 力扣(LeetCode)2、题目描述给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。示例 1: 输

    日期 2023-06-12 10:48:40     
  • ☆打卡算法☆LeetCode 203. 移除链表元素 算法解析

    ☆打卡算法☆LeetCode 203. 移除链表元素 算法解析

    大家好,我是小魔龙,Unity3D软件工程师,VR、AR,虚拟仿真方向,不定时更新软件开发技巧,生活感悟,觉得有用记得一键三连哦。一、题目1、算法题目“给定一个链表头结点和一个整数val,删除链表中所有能满足Node.val == val的节点,返回新的头结点。”题目链接:来源:力扣(LeetCode)链接: 203. 移除链表元素 - 力扣(LeetCode)2、题目描述给你一个链表的头节点 h

    日期 2023-06-12 10:48:40     
  • 设计循环队列(leetcode 622)

    设计循环队列(leetcode 622)

    文章目录1.问题描述2.难度等级3.热门指数4.解题思路5.实现示例5.1 C++5.2 Golang参考文献1.问题描述设计一个循环队列。循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为环形缓冲器(Ringr Buffer)。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能

    日期 2023-06-12 10:48:40     
  • 两数相加(leetcode 2)

    两数相加(leetcode 2)

    文章目录1.问题描述2.难度等级3.热门指数4.解题思路5.实现示例5.1 C++5.2 Golang参考文献1.问题描述给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储 一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5

    日期 2023-06-12 10:48:40     
  • LeetCode笔记:Weekly Contest 310

    LeetCode笔记:Weekly Contest 310

    LeetCode笔记:Weekly Contest 310 0. 总结1. 题目一 1. 解题思路2. 代码实现2. 题目二 1. 解题思路2. 代码实现3. 题目三 1. 解题思路2. 代码实现4. 题目四 1. 解题思路比赛链接:https://leetcode.com/contest/weekly-contest-3100. 总结这次的比赛真心被伤到了,第一名的大佬6分钟就搞定了4道题,然而

    日期 2023-06-12 10:48:40     
  • LeetCode笔记:Weekly Contest 312

    LeetCode笔记:Weekly Contest 312

    LeetCode笔记:Weekly Contest 312 1. 题目一 1. 解题思路2. 代码实现2. 题目二 1. 解题思路2. 代码实现3. 题目三 1. 解题思路2. 代码实现4. 题目四 1. 解题思路2. 代码实现比赛链接:https://leetcode.com/contest/weekly-contest-312/1. 题目一给出题目一的试题链接如下:2418. Sort the

    日期 2023-06-12 10:48:40     
  • LeetCode笔记:Biweekly Contest 84

    LeetCode笔记:Biweekly Contest 84

    LeetCode笔记:Biweekly Contest 84 1. 题目一 1. 解题思路2. 代码实现2. 题目二 1. 解题思路2. 代码实现3. 题目三 1. 解题思路2. 代码实现4. 题目四 1. 解题思路2. 代码实现比赛链接:https://leetcode.com/contest/biweekly-contest-84/1. 题目一给出题目一的试题链接如下:2363. Merge

    日期 2023-06-12 10:48:40     
  • LeetCode笔记:Weekly Contest 302

    LeetCode笔记:Weekly Contest 302

    LeetCode笔记:Weekly Contest 302 0. 序言1. 题目一 1. 解题思路2. 代码实现2. 题目二 1. 解题思路2. 代码实现3. 题目三 1. 解题思路2. 代码实现4. 题目四 1. 解题思路2. 代码实现比赛链接:https://leetcode.com/contest/weekly-contest-302/0. 序言这一次的比赛整体上来说感觉算是比较简单的,第一

    日期 2023-06-12 10:48:40     
  • LeetCode笔记:Weekly Contest 307

    LeetCode笔记:Weekly Contest 307

    LeetCode笔记:Weekly Contest 307 1. 题目一 1. 解题思路2. 代码实现2. 题目二 1. 解题思路2. 代码实现3. 题目三 1. 解题思路2. 代码实现4. 题目四 1. 解题思路2. 代码实现比赛链接:https://leetcode.com/contest/weekly-contest-3071. 题目一给出题目一的试题链接如下:2383. Minimum H

    日期 2023-06-12 10:48:40     
  • <leetcode刷题-数组> 【动态规划】【贪心算法】买卖股票的最佳时机

    <leetcode刷题-数组> 【动态规划】【贪心算法】买卖股票的最佳时机

    动态规划解法题目给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例输入: prices = [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价

    日期 2023-06-12 10:48:40     
  • EasyLeetCode 02,两数相加(Add Two Numbers)

    EasyLeetCode 02,两数相加(Add Two Numbers)

    作者 | 梁唐大家好,我是梁唐。题意题意很简单,给定两个非空的链表。用逆序的链表来表示一个整数,要求我们将这两个数相加,并且返回一个同样形式的链表。除了数字0之外,这两个数都不会以0开头,也就是没有前导0。所谓的逆序的链表,题目中给了示例,也就是下面这种形式:比如2 -> 4 -> 3,存的是342,并不是243,这里需要注意。数据范围每个链表中的节点数在范围 [1, 100] 内0

    日期 2023-06-12 10:48:40     
  • 老梁你居然说刷LeetCode Easy找不到工作,你一定没做过Java

    老梁你居然说刷LeetCode Easy找不到工作,你一定没做过Java

    作者 | 梁唐大家好,我是梁唐。最近遇到一件让我挺难受的事,老梁在知乎的付费咨询里被人给打了差评。打了差评的原因居然是觉得老梁没有做过Java相关的工作……说实话,看到这句话的时候,我真想找出当年阿里主搜团队的offer甩在他脸上,要知道老梁当年是一年的工作经验破格录取拿到offer的……事情的起因是前两天老梁在知乎的付费咨询收到了一条提问:这里面几个关键字非常惊人,自学Java、转行、三个月时间

    日期 2023-06-12 10:48:40     
  • LeetCode第三题,五个版本迭代优化带你吃透two pointers算法

    LeetCode第三题,五个版本迭代优化带你吃透two pointers算法

    作者 | 梁唐大家好,我是梁唐。今天给大家带来LeetCode第三题的题解——无重复字符的最长子串,题意等描述来源于力扣官网。题意给定一个字符串s,要求返回其中不包含重复字符的最长子串的长度。样例示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s = &qu

    日期 2023-06-12 10:48:40     
  • 在刷了几百道LeetCode之后,我总结出了这几条刷题技巧

    在刷了几百道LeetCode之后,我总结出了这几条刷题技巧

    作者 | 梁唐大家好,我是梁唐。最近参加了几周LeetCode周赛,找回了一些当年比赛的感觉,也简单总结了一些常用的技巧,希望能够帮助到大家。string的修改首先来聊聊string类型的修改,众所周知,string是C++当中的字符串类型,我们可以很方便地对字符串进行拼接以及比较等处理。关于string类型要注意什么呢?要注意每一次的赋值是一个O(n)的操作,这里的n指的是字符串的长度。比如这周

    日期 2023-06-12 10:48:40     
  • Leetcode 差分数组的应用「建议收藏」

    Leetcode 差分数组的应用「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 题目1解法这个题目普通解法参见这里 不过这里面的做法都是nlog(n)的。实际上利用差分数组,这道题目可以有O(n)做法这边简单提一下差分序列,对于一个数组,差分序列的定义是数组中前一个值和后一个值的差值形成的新数组。我们在原数组某个区间加上一个统一的值,正常的做法需要在原数组每个位置去叠加,而体现在差分数组上只需要对区间两端的值进行变化即可,差分数

    日期 2023-06-12 10:48:40     
  • 【Leetcode 346/700】79. 单词搜索-回溯深度搜索JavaScript版

    【Leetcode 346/700】79. 单词搜索-回溯深度搜索JavaScript版

    1.题目 n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例 1:输入:board = [["A","B","C&quo

    日期 2023-06-12 10:48:40     
  • Leetcode 通过率最高的困难题 N皇后 II 【回溯解法-剪枝】

    Leetcode 通过率最高的困难题 N皇后 II 【回溯解法-剪枝】

    题目「n 皇后问题 研究的是如何将 n 个皇后放置在 n × n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。」皇后走法规则皇后的走法是:可以横直斜走,格数不限。因此要求皇后彼此之间不能相互攻击,等价于要求任何两个皇后都不能在同一行、同一列以及同一条斜线上。示例示例 1:输入:n = 4 输出:2 复制解释:如上图所示,4 皇后问题存在两

    日期 2023-06-12 10:48:40     
  • [LeetCode 验证回文串] | 刷题打卡

    [LeetCode 验证回文串] | 刷题打卡

    一、题目描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama" 输出: true 复制示例 2:输入: "race a car" 输出: false 复制二、思路分析:1.验证有效字符并以小写或者大

    日期 2023-06-12 10:48:40     
  • 《三战Leetcode》寻找有序数组的中位数

    《三战Leetcode》寻找有序数组的中位数

    一、前言  大家好,又到了三分钟算法修行时间,之前挑选的算法都是中低难度的,这次找个难度较高的,看看会遇到啥问题。至于难到啥程度,来看看Leetcode下解题的网友评论。 本篇文章大纲: 二、 题目  名称:寻找两个正序数组的中位数   题意:给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数 。 示例 1:

    日期 2023-06-12 10:48:40     
  • leetcode-剑指offer59-I 滑动窗口的最大值

    leetcode-剑指offer59-I 滑动窗口的最大值

    大家好,又见面了,我是你们的朋友全栈君。2020-8-13这道题我实在没想到什么好方法,就暴力求解了。看了题解才知道stl里面还有双端队列这个数据结构,可是还是没看懂大佬们怎么用,只知道大概是维护了一个最小栈。等过几天更新大佬们的解法。https://leetcode-cn.com/problems/hua-dong-chuang-kou-de-zui-da-zhi-lcof/暴力解法class

    日期 2023-06-12 10:48:40     
  • leetcode, LC5: insertion-sort-list[通俗易懂]

    leetcode, LC5: insertion-sort-list[通俗易懂]

    大家好,又见面了,我是你们的朋友全栈君。 题目描述使用插入排序对链表进行排序。 Sort a linked list using insertion sort.示例1 输入 {3, 2, 4} 输出 {2, 3, 4} 解题思路new 一个新的 ListNode 作为选择排序好的链表的表头对于原始链表中的每一个结点 2.1. 寻找新链表中该结点的插入位置 2.2 插入

    日期 2023-06-12 10:48:40     
  • LeetCode 700题 题解答案集合 Python

    LeetCode 700题 题解答案集合 Python

    大家好,又见面了,我是你们的朋友全栈君。2019.5.12更新至题号796,目前共有265题。2019.5.26更新至题号72, 目前共有347题。2019.6.16更新至题号70,目前共有382题。2019.7.7更新至题号5120,目前共有442题。2019.8.5更新至题号1147,目前共有502题。2019.9.6更新至题号288, 目前共有551题。2019.11.13更新至题号426,

    日期 2023-06-12 10:48:40     
  • LeetCode46全排列(回溯入门)

    LeetCode46全排列(回溯入门)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 题目描述 难度:中等 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案 示例 1 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3

    日期 2023-06-12 10:48:40