LeetCode
文章平均质量分 83
来源:力扣(LeetCode)
https://leetcode-cn.com/
一个写湿的程序猿
练习两年半的程序猿。。。只因(ji)你太美!!!
初识不知文中意,再见已是文中人
展开
-
【leetcode】单调栈,496下一个更大元素,503下一个更大元素 ll,739每日温度
这前言单调栈单调栈模板496. 下一个更大元素前言首先我们来回忆一下「栈」。「栈」是一种「后进先出」的线性数据结构,其只有一端(栈顶)可以任意进出元素,而另一端(栈底)则无法进行任何操作。如下图所示,3 1 4 5 2 7 依次入栈又依次出栈,其过程仅有栈顶在不断移动,其结果则满足「后进先出」的要求。单调栈什么是「单调栈」?顾名思义,「单调栈」就是栈内元素满足单调性。单调栈实际上就是栈,只是利用一些逻辑,使得每次新元素入栈后,栈内的元素都保持有序(单调递增或单调递减),为原创 2022-04-28 09:45:38 · 225 阅读 · 0 评论 -
【leetcode】870优势洗牌,田忌赛马加强版
【leetcode】870优势洗牌,田忌赛马加强版田忌赛马的故事:田忌和齐王赛马,两人的马分上中下三等,如果同等级的马对应着比赛,田忌赢不了齐王。但是田忌遇到了孙膑,孙膑就教他用自己的下等马对齐王的上等马,再用自己的上等马对齐王的中等马,最后用自己的中等马对齐王的下等马,结果三局两胜,田忌赢了。870优势洗牌,leetcode链接函数签名如下:public int[] advantageCount(int[] nums1, int[] nums2) {};给你输入两个长度相等的数组 num原创 2022-04-28 09:44:33 · 415 阅读 · 0 评论 -
【leetcode】二叉搜索树,判断合法性,搜索,插入,删除一个元素
【leetcode】二叉搜索树,判断合法性,搜索,插入,删除一个元素前言BST 简介一、判断 BST 的合法性二、在 BST 中搜索一个元素三、在 BST 中插入一个元素四、在 BST 中删除一个元素前言我们之前 二叉搜索树,230. 二叉搜索树中第K小的元素,538. 把二叉搜索树转换为累加树 主要是利用二叉搜索树「中序遍历有序」的特性来解决了几道题目,本文来实现 BST 的基础操作:判断 BST 的合法性、增、删、查。什么是基础二叉树、真二叉树、满二叉树、完全二叉树?从0到1实现二叉搜索树完整代原创 2022-04-25 11:11:11 · 227 阅读 · 0 评论 -
【leetcode】二叉搜索树,230二叉搜索树中第K小的元素,538把二叉搜索树转换为累加树
这前言230. 二叉搜索树中第K小的元素538. 把二叉搜索树转换为累加树前言首先,BST 的特性大家应该都很熟悉了,如果不是太清楚的,可以看下这篇什么是基础二叉树、真二叉树、满二叉树、完全二叉树?:对于 BST 的每一个节点 node,左子树节点的值都比 node 的值要小,右子树节点的值都比 node 的值大。对于 BST 的每一个节点 node,它的左侧子树和右侧子树都是 BST。二叉搜索树并不算复杂,但我觉得它可以算是数据结构领域的半壁江山,直接基于 BST 的数据结构有 AV原创 2022-04-25 11:10:21 · 158 阅读 · 0 评论 -
【leetcode】位运算,汉明权重,汉明距离,判断一个数是否是2的指数
【leetcode】位运算,汉明权重,汉明距离,判断一个数是否是2的指数一、几个有趣的位操作二、算法常用操作 n&(n-1)1. 计算汉明权重(Hamming Weight)2. 汉明距离3. 判断一个数是不是 2 的指数一、几个有趣的位操作1、利用或操作 | 和空格将英文字符转换为小写('a' | ' ') = 'a'('A' | ' ') = 'a'2、利用与操作 & 和下划线将英文字符转换为大写('b' & '_') = 'B'('B' & '_') =原创 2022-04-25 11:05:35 · 524 阅读 · 0 评论 -
【leetcode】二叉树,654最大二叉树,105根据前序与中序遍历构造二叉树,106根据中序与后序遍列构造二叉树,889根据前序和后序遍历构造二叉树
【leetcode】二叉树,654最大二叉树,105根据前序与中序遍历构造二叉树,106根据中序与后序遍列构造二叉树,889根据前序和后序遍历构造二叉树前言654. 最大二叉树105. 根据前序与中序遍历构造二叉树106. 根据中序与后序遍列构造二叉树889. 根据前序和后序遍历构造二叉树前言上篇文章 手把手教你刷二叉树(第一篇) 连刷了三道二叉树题目,很多读者直呼内行。其实二叉树相关的算法真的不难,本文再来三道,手把手带你看看树的算法到底怎么做。先来复习一下,我们说过写树的算法,关键思路如下:把题原创 2022-04-22 16:24:25 · 664 阅读 · 0 评论 -
【leetcode】二叉树,226翻转二叉树,116填充二叉树节点的右侧指针,114将二叉树展开为链表
【leetcode】二叉树,226翻转二叉树,116填充二叉树节点的右侧指针,114将二叉树展开为链表226. 翻转二叉树116. 填充二叉树节点的右侧指针114. 将二叉树展开为链表226. 翻转二叉树226. 翻转二叉树,leetcode链接函数签名如下:public TreeNode invertTree(TreeNode root) {};输入一个二叉树根节点root,让你把整棵树镜像翻转,比如输入的二叉树如下:通过观察,我们发现只要把二叉树上的每一个节点的左右子节点进行交换,最后的原创 2022-04-22 14:54:17 · 460 阅读 · 0 评论 -
【leetcode】二叉树,104二叉树的最大深度,543二叉树的直径,124二叉树的最大路径和
【leetcode】二叉树,104二叉树的最大深度,543二叉树的直径,124二叉树的最大路径和前言104. 二叉树的最大深度543. 二叉树的直径124. 二叉树的最大路径和前言如果你之前看过这篇深入理解二叉树的前中后序,那么下面这三道题,应该还是比较OK的104. 二叉树的最大深度104. 二叉树的最大深度,leetcode链接函数签名如下:public int maxDepth(TreeNode root) {};所谓最大深度,就是根节点到「最远」叶子节点的最长路径上的节点数,比如输入原创 2022-04-22 09:28:50 · 241 阅读 · 0 评论 -
【leetcode】二叉树,深入理解前中后序
【leetcode】二叉树,深入理解前中后序前言前中后序的理解实践检验真理后序位置的特殊之处层序遍历前言看完希望你对二叉树的遍历有更深入的理解首先介绍一下二叉树的解题思路。所有的二叉树解题思路,大致可以分为两种:遍历法(递归遍历、迭代遍历):根据不同遍历的顺序 (先序or前序,中序,后序) 时机,利用全局变量来解决当前问题分解法(分解子问题):把一个问题分解为「当前节点」「左子树」「右子树」需要处理的工作但无论使用哪种思路,都需要明确对于当前正在处理的二叉树节点,它需要「做什么」「什原创 2022-04-22 09:27:34 · 240 阅读 · 0 评论 -
【leetcode】二叉树,从递归到迭代,通用写法
二叉树,从递归到迭代,通用写法前言递归框架改为迭代迭代代码框架参考leetcode前言我比较懒,想要一个通用的迭代模板,解决二叉树的前中后序遍历,而且还要好理解二叉树的遍历可以说是老生常谈了,而且现在网上各种版本形态的都有,以前见过一些迭代实现二叉树前中后序遍历的代码模板,比较简洁,但通用性较差。函数签名类似这样,返回一个TreeNode列表:List<TreeNode> traverse(TreeNode root);我想要的是一个万能的模板,可以把一切二叉树递归算法都改成原创 2022-04-19 15:58:13 · 1115 阅读 · 0 评论 -
【leetcode】回溯算法专场,排列/组合/子集问题
这子集(元素无重复,不可复选)组合(元素无重复,不可复选)排列(元素无重复,不可复选)子集/组合(元素可重复,不可复选)组合总和 II排列(元素可重复,不可复选)子集/组合(元素无重复,可复选)无论是排列、组合还是子集问题,简单说就是从序列 nums 中用题目给定的规则,得出若干个元素,主要有以下几种变体:形式一、元素无重复,不可复选,即 nums 中的元素都是唯一的,每个元素最多只能被使用一次,这也是最基本的形式。以组合为例,如果输入 nums = [2,3,6,7],和为 7 的组合应该只有原创 2022-04-13 14:28:55 · 1011 阅读 · 0 评论 -
【leetcode】数组专场,循序渐进,双指针技巧
【leetcode】数组专场,循序渐进,双指针技巧一、快慢指针技巧26.删除有序数组中的重复项27.移除元素283.移动零二、左右指针技巧167.两数之和 II344.反转数组5.最长回文子串在处理数组和链表相关问题时,双指针技巧是经常用到的,双指针技巧主要分为两类:左右指针和快慢指针。左右指针:就是两个指针相向而行 或 相背而行快慢指针:就是两个指针同向而行,一快一慢一、快慢指针技巧26.删除有序数组中的重复项数组问题中比较常见且难度不高的的快慢指针技巧,就是原地修改数组。什么原创 2022-04-11 09:15:36 · 360 阅读 · 0 评论 -
【leetcode】数组专场,二分查找,左右边界问题
【leetcode】数组专场,二分查找一、标准的二分查找二、寻找左侧边界的二分查找三、寻找右侧边界的二分查找四、逻辑统一一、标准的二分查找直接上正题,什么是二分查找?顾名思义:二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,标准的折半查找,要求必须采用顺序存储结构,而且表中元素按关键字有序排列寻找一个数这个场景,可能也是大家比较熟悉的,即搜索一个数,如果存在,返回其索引,否则返回 -1。int binarySearch(int[] nums, int targ原创 2022-04-11 09:14:27 · 1103 阅读 · 0 评论 -
【leetcode】链表专场,循序渐进,双指针技巧
这1、21. 合并两个有序链表2、23. 合并 k 个有序链表3、寻找单链表的倒数第 k 个节点4、19. 删除链表的倒数第 N 个结点5、寻找单链表的中点(876. 链表的中间结点)6、判断单链表是否包含环并找出环起点(141. 环形链表、142. 环形链表 II)7、判断两个单链表是否相交并找出交点(160. 相交链表)1、21. 合并两个有序链表这题比较简单,我们直接看解法:ListNode mergeTwoLists(ListNode l1, ListNode l2) { // 虚拟原创 2022-04-06 14:41:25 · 1298 阅读 · 0 评论 -
【leetcode】链表专场,循序渐进,递归反转
这一、递归反转整个链表二、反转链表前 N 个节点三、反转链表的一部分反转单链表的迭代实现不是一个困难的事情,但是递归实现就有点难度了,如果再加一点难度,仅仅反转单链表中的一部分,是否能够递归实现呢?一、递归反转整个链表ListNode reverse(ListNode head) { if (head == null || head.next == null) { return head; } ListNode last = reverse(head.next原创 2022-04-06 14:39:50 · 690 阅读 · 0 评论 -
【leetcode】二叉树,652寻找重复的子树,236二叉树的最近公共祖先
【leetcode】652. 寻找重复的子树题目难度:中等题解一:DFS链接:https://leetcode-cn.com/problems/find-duplicate-subtrees/题解:题目难度:中等/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNo原创 2022-04-06 14:38:25 · 442 阅读 · 0 评论 -
【leetcode】二叉树,297二叉树的序列化与反序列化
297. 二叉树的序列化与反序列化题目难度:困难一、题目描述二、前序遍历解法三、后序遍历解法四、中序遍历解法五、层级遍历解法链接:https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/题解:参考leetcode、labuladong题目难度:困难/** * Definition for a binary tree node. * public class TreeNode { * int va原创 2022-04-06 14:37:15 · 761 阅读 · 0 评论 -
【leetcode】面试题 16.16. 部分排序
面试题 16.16. 部分排序题目难度:中等方法一:双指针(找最大逆序对)链接:https://leetcode-cn.com/problems/sub-sort-lcci/来源:力扣(LeetCode)题目难度:中等给定一个整数数组,编写一个函数,找出索引m和n,只要将索引区间[m,n]的元素排好序,整个数组就是有序的。注意:n-m尽量最小,也就是说,找出符合条件的最短序列。函数返回值为[m,n],若不存在这样的m和n(例如整个数组是有序的),请返回[-1,-1]。示例 1:输入: [1原创 2021-07-26 10:09:30 · 308 阅读 · 0 评论 -
【leetcode】精选 75. 颜色分类
精选 75. 颜色分类题目难度:中等双指针链接:https://leetcode-cn.com/problems/sort-colors/来源:力扣(LeetCode)题目难度:中等给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。示例 1:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]示例 2:输入:nu原创 2021-07-26 10:08:05 · 213 阅读 · 0 评论 -
【leetcode】精选 88. 合并两个有序数组
精选 88. 合并两个有序数组题目难度:简单方法一:逆向双指针链接:https://leetcode-cn.com/problems/merge-sorted-array/来源:力扣(LeetCode)题目难度:简单给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nu原创 2021-07-26 10:07:11 · 140 阅读 · 0 评论 -
【leetcode】剑指 Offer 59 - I. 滑动窗口的最大值
剑指 Offer 11. 旋转数组的最小数字题目难度:困难方法一:双端队列链接:https://leetcode-cn.com/problems/hua-dong-chuang-kou-de-zui-da-zhi-lcof/来源:力扣(LeetCode)图解算法数据结构题目难度:困难给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例 1:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释:原创 2021-06-02 17:38:35 · 158 阅读 · 0 评论 -
【leetcode】剑指 Offer 11. 旋转数组的最小数字
剑指 Offer 11. 旋转数组的最小数字题目难度:简单方法一:二分查找(减治思想)链接:https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/来源:力扣(LeetCode)图解算法数据结构题目难度:简单把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转原创 2021-06-02 17:38:16 · 121 阅读 · 0 评论 -
【leetcode】剑指 Offer 25. 合并两个排序的链表
剑指 Offer 22. 链表中倒数第 k 个节点题目难度:简单方法一:迭代(双指针)链接:https://leetcode-cn.com/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof/来源:力扣(LeetCode)图解算法数据结构题目难度:简单输入两个链表,找出它们的第一个公共节点。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8原创 2021-05-31 16:30:58 · 70 阅读 · 0 评论 -
【leetcode】剑指 Offer 58 - II. 左旋转字符串
剑指 Offer 22. 链表中倒数第 k 个节点题目难度:简单方法一:字符串切片方法一:列表遍历拼接链接:https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/来源:力扣(LeetCode)图解算法数据结构题目难度:简单字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。原创 2021-05-31 16:30:37 · 128 阅读 · 0 评论 -
【leetcode】剑指 Offer 10- II. 青蛙跳台阶问题
剑指 Offer 47. 礼物的最大价值题目难度:简单方法一:动态规划链接:https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof/来源:力扣(LeetCode)图解算法数据结构题目难度:简单一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2原创 2021-05-29 17:00:08 · 177 阅读 · 0 评论 -
【leetcode】剑指 Offer 47. 礼物的最大价值
剑指 Offer 47. 礼物的最大价值题目难度:中等方法一:动态规划链接:https://leetcode-cn.com/problems/li-wu-de-zui-da-jie-zhi-lcof/来源:力扣(LeetCode)图解算法数据结构题目难度:中等在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼原创 2021-05-28 11:24:30 · 141 阅读 · 0 评论 -
【leetcode】剑指 Offer 63. 股票的最大利润
剑指 Offer 63. 股票的最大利润题目难度:中等方法一:动态规划链接:https://leetcode-cn.com/problems/gu-piao-de-zui-da-li-run-lcof/来源:力扣(LeetCode)图解算法数据结构题目难度:中等假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)原创 2021-05-28 11:24:10 · 164 阅读 · 0 评论 -
【leetcode】剑指 Offer 42. 连续子数组的最大和
剑指 Offer 42. 连续子数组的最大和题目难度:简单方法一:动态规划链接:https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de-zui-da-he-lcof/来源:力扣(LeetCode)图解算法数据结构题目难度:简单输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例 1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续原创 2021-05-26 16:57:49 · 175 阅读 · 0 评论 -
什么是回溯算法?组合问题理解回溯
回溯算法 与 深度优先遍历对比什么叫回溯算法组合总和解释总结来源:公众号(数据结构和算法)什么叫回溯算法对于回溯算法的定义是这样描述的:回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。许多复杂的,规模较大原创 2021-04-20 22:38:40 · 1206 阅读 · 1 评论 -
回溯算法 与 深度优先遍历对比
回溯算法 与 深度优先遍历对比回溯算法与深度优先遍历链接:来源:力扣(LeetCode)回溯算法与深度优先遍历以下是维基百科中「回溯算法」和「深度优先遍历」的定义。回溯法 采用试错的思想,它尝试分步的去解决一个问题。在分步解决问题的过程中,当它通过尝试发现现有的分步答案不能得到有效的正确的解答的时候,它将取消上一步甚至是上几步的计算,再通过其它的可能的分步解答再次尝试寻找问题的答案。回溯法通常用最简单的递归方法来实现,在反复重复上述的步骤后可能出现两种情况:找到一个可能存在的正确的答原创 2021-04-20 22:38:10 · 3356 阅读 · 2 评论 -
【leetcode】剑指 Offer 57. 和为s的两个数字
剑指 Offer 57. 和为s的两个数字题目难度:简单方法一:双指针链接:https://leetcode-cn.com/problems/he-wei-sde-liang-ge-shu-zi-lcof/来源:力扣(LeetCode)题目难度:简单输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例 1:输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]示例原创 2021-04-20 22:37:42 · 179 阅读 · 0 评论 -
【leetcode】剑指 Offer 58 - I. 翻转单词顺序
剑指 Offer 58 - I. 翻转单词顺序题目难度:简单方法一:双指针方法二:分割 + 倒序链接:https://leetcode-cn.com/problems/fan-zhuan-dan-ci-shun-xu-lcof/来源:力扣(LeetCode)题目难度:简单输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。示例 1:输入: "the原创 2021-04-20 22:37:19 · 140 阅读 · 0 评论 -
【leetcode】剑指 Offer 25. 合并两个排序的链表
剑指 Offer 22. 链表中倒数第 k 个节点题目难度:简单方法一:迭代(双指针)方法二:递归链接:https://leetcode-cn.com/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof/来源:力扣(LeetCode)题目难度:简单输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例 1:输入:1->2->4, 1->3->4输出:1->1->2->3-&g原创 2021-04-20 22:36:58 · 168 阅读 · 0 评论 -
【leetcode】剑指 Offer 22. 链表中倒数第 k 个节点
剑指 Offer 22. 链表中倒数第 k 个节点题目难度:简单方法一链接:https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/来源:力扣(LeetCode)题目难度:简单输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3原创 2021-04-20 22:36:37 · 135 阅读 · 0 评论 -
【leetcode】剑指 Offer 18. 删除链表的节点
剑指 Offer 18. 删除链表的节点题目难度:简单方法一链接:https://leetcode-cn.com/problems/shan-chu-lian-biao-de-jie-dian-lcof/来源:力扣(LeetCode)题目难度:简单给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你原创 2021-04-20 22:36:16 · 134 阅读 · 0 评论 -
【leetcode】剑指 Offer 05. 替换空格
剑指 Offer 05. 替换空格题目难度:简单方法一:遍历添加链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof来源:力扣(LeetCode)题目难度:简单请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."限制:0 <= s 的长度 <= 10000模板class Solution { p原创 2021-04-20 22:35:57 · 144 阅读 · 0 评论 -
【leetcode】剑指 Offer 09. 用两个栈实现队列
剑指 Offer 09. 用两个栈实现队列题目难度:简单方法一链接:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof来源:力扣(LeetCode)题目难度:简单用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:原创 2021-04-20 22:35:31 · 106 阅读 · 0 评论 -
【leetcode】剑指 Offer 24. 反转链表
剑指 Offer 24. 反转链表题目难度:简单方法一:迭代(双指针)方法二:递归链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/来源:力扣(LeetCode)题目难度:简单定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例 1:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL限制:原创 2021-04-20 22:35:04 · 152 阅读 · 0 评论 -
【leetcode】剑指 Offer 06. 从尾到头打印链表
剑指 Offer 06. 从尾到头打印链表题目难度:简单方法一:递归法方法二:辅助栈法链接:https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof来源:力扣(LeetCode)题目难度:简单输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000模板/** *原创 2021-04-20 22:30:35 · 122 阅读 · 0 评论 -
【leetcode】剑指 Offer 03. 数组中重复的数字
剑指 Offer 03. 数组中重复的数字题目难度:简单方法一:哈希表 / Set方法二:原地交换链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/来源:力扣(LeetCode)题目难度:简单找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。原创 2021-04-20 22:30:04 · 172 阅读 · 0 评论