leetcode
leetcode算法题汇总
小河马游六花
四吉幼儿园园长,
展开
-
leetcode系列-501. 二叉搜索树中的众数
二叉搜索树中的众数原创 2022-09-14 20:28:06 · 176 阅读 · 1 评论 -
leetcode系列-530. 二叉搜索树的最小绝对差
【代码】leetcode系列-530. 二叉搜索树的最小绝对差。原创 2022-09-14 18:15:56 · 170 阅读 · 0 评论 -
leetcode系列-98.验证二叉搜索树
【代码】leetcode系列-98.验证二叉搜索树。原创 2022-09-14 17:48:18 · 165 阅读 · 0 评论 -
leetcode系列-106. 从中序与后序遍历序列构造二叉树
【代码】leetcode系列-106. 从中序与后序遍历序列构造二叉树。原创 2022-08-31 20:50:38 · 173 阅读 · 0 评论 -
leetcode系列-14. 最长公共前缀
【代码】leetcode系列-14. 最长公共前缀。原创 2022-08-22 20:25:34 · 65 阅读 · 0 评论 -
leetcode系列-213.打家劫舍II
打家劫舍2原创 2022-07-22 20:59:07 · 84 阅读 · 0 评论 -
leetcode系列-700.二叉搜索树中的搜索
二叉搜索树中的搜索原创 2022-07-21 22:56:36 · 94 阅读 · 1 评论 -
leetcode系列-155.最小栈
leetcode系列–第155题.最小栈题目描述:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。实现 MinStack 类:MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int getMin() 获取堆栈中的最小元素。示例:输入:["MinStack","push","push","push","getMin","原创 2022-03-08 15:41:21 · 69 阅读 · 0 评论 -
剑指offer系列-30.包含min函数的栈
剑指offer系列第30题.包含min函数的栈题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.min(); --> 返回 -3.minStack.pop();minSt原创 2022-03-08 16:38:46 · 55 阅读 · 0 评论 -
剑指offer系列-09.用两个栈设计队列
剑指offer系列第09题.用两个栈设计队列用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:["CQueue","de原创 2022-03-08 16:07:42 · 93 阅读 · 0 评论 -
leetcode系列-11.盛最多水的容器
leetcode系列–第11题.盛最多水的容器给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的原创 2022-04-11 20:44:19 · 53 阅读 · 0 评论 -
剑指offer系列-03.数组中的重复数字
剑指offer系列第03题.数组中的重复数字找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 /** * @param {number[]} nums * @return {number} */var findRepeatNumber = fu原创 2022-03-11 21:24:47 · 121 阅读 · 0 评论 -
leetcode系列-844.比较含退格的字符串
leetcode系列–第844题.比较含退格的字符串给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。示例 1:输入:s = "ab#c", t = "ad#c"输出:true解释:s 和 t 都会变成 "ac"。示例 2:输入:s = "ab##", t = "c#d#"输出:true解释:s 和 t 都会变成 ""。示例 3:输入:s = "a#c", t =原创 2022-04-11 20:31:18 · 369 阅读 · 0 评论 -
剑指offer系列-24.反转链表
剑指offer系列第24题.反转链表题目描述:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next原创 2022-03-08 22:12:54 · 169 阅读 · 0 评论 -
剑指offer系列-06.从尾到头打印链表
剑指offer系列第06题.从尾到头打印链表题目描述:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } *//** * @param {ListNode} he原创 2022-03-08 16:45:51 · 113 阅读 · 0 评论 -
leetcode系列-206.反转链表
leetcode系列–第206题.反转链表这道题很经典给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next=原创 2022-04-13 21:12:52 · 324 阅读 · 0 评论 -
leetcode系列-209.长度最小的子数组
leetcode系列–第209题.长度最小的子数组题目描述:给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。示例 2:输入:tar原创 2022-03-08 15:52:28 · 107 阅读 · 0 评论 -
leetcode系列--704.二分查找
leetcode系列–第704题.二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4// 复杂度分析:时间复杂度:O(logn)//。 空间复杂度:O(1)/** * @param {number[]} nums原创 2022-01-04 19:52:25 · 231 阅读 · 0 评论 -
leetcode系列--875.爱吃香蕉的珂珂
leetcode系列–第875题.爱吃香蕉的珂珂珂珂喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。珂珂可以决定她吃香蕉的速度 K (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 K 根。如果这堆香蕉少于 K 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。 珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。返回她可以在 H 小时内吃掉所有香蕉的最小速度 K(K 为整数)。输入: piles = [3,原创 2022-01-05 21:14:56 · 194 阅读 · 0 评论 -
leetcode系列特殊篇(跟着东哥总结二分法)
二分查找:思路很简单,细节是魔鬼。在不了解二分细节的情况下,写二分肯定就是玄学编程,能通过全靠菩萨保佑????。。本文将代入东哥的思路,从三个二分最常用的场景入手,带你深入了解二分算法的细节。1.寻找一个数2.寻找左侧边界3.寻找右侧边界请着重思考:不等号什么情况下应该带等于 mid是否应该加一或者减一 ..............// 先贴一个二分查找的框架吧 (伪代码)// nums : 有序数组 (允许有重复)// target : 目标值functio原创 2022-01-06 21:26:08 · 242 阅读 · 0 评论 -
leetcode系列--69.Sqrt(x)
leetcode系列–第69题.Sqrt(x)给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。输入:x = 4输出:2输入:x = 8输出:2解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。// 非零整数的算数平方根的区间是[1,x],那就是求[1,x]区间之内符合题意的右边界原创 2022-01-08 19:00:18 · 409 阅读 · 0 评论 -
leetcode系列--367.有效的完全平方数
leetcode系列–第367题.有效的完全平方数给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。输入:num = 16输出:true输入:num = 14输出:false// 偷懒法/** * @param {number} num * @return {boolean} */var isPerfectSquare = function(num) {原创 2022-01-11 14:35:14 · 167 阅读 · 0 评论 -
leetcode系列-53.最大子数组和
题目描述:给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [5,4,-1,7,8]输出:23// 贪心算法/** * @param {number[]} nums原创 2022-05-18 20:52:44 · 80 阅读 · 0 评论 -
leetcode系列-455. 分发饼干
题目描述:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例 1:输入: g = [1,2,3], s = [1,1]输出: 1解释: 你有三个孩子和两块小饼干,3个原创 2022-05-18 21:51:55 · 52 阅读 · 0 评论 -
leetcode系列-376. 摆动序列
题目描述:如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。子序列 可以通原创 2022-05-18 21:30:32 · 75 阅读 · 0 评论 -
leetcode系列-122.买卖股票的最佳时机 II
题目描述:给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。返回 你能获得的 最大 利润 。示例 1:输入:prices = [7,1,5,3,6,4]输出:7解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。 随后,在原创 2022-05-19 21:28:34 · 83 阅读 · 0 评论 -
leetcode系列-509.斐波那契数
斐波那契数原创 2022-06-15 19:52:49 · 59 阅读 · 1 评论 -
leetcode系列-746.使用最小花费爬楼梯
使用最小花费爬楼梯原创 2022-06-18 16:33:36 · 142 阅读 · 1 评论 -
leetcode系列-70. 爬楼梯
爬楼梯原创 2022-06-15 20:28:50 · 59 阅读 · 1 评论 -
leetcode系列-343.整数拆分
整数拆分原创 2022-06-22 22:23:24 · 61 阅读 · 1 评论 -
leetcode系列--5.最长回文字串
leetcode系列–第5题.最长回文字串给你一个字符串 s,找到 s 中最长的回文子串。子串和子序列的区别:子串:子串是指一个字串中连续的字串子序列:子序列是指一个字串中非连续的字串输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。// 暴力解法// 循环字符串 判断所有可能存在的情况,然后判断是否符合条件// 此处 j - i + 1 > maxLen 判断条件可以帮我们把条件上限提高 稍微提高效率function longestPalin原创 2021-12-26 15:00:59 · 153 阅读 · 0 评论 -
leetcode系列--125.验证回文串
leetcode系列–第125题.验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。输入: "A man, a plan, a canal: Panama"输出: true解释:"amanaplanacanalpanama" 是回文串/** * @param {string} s * @return {boolean} */var isPalindrome = function (s) { //原创 2021-12-26 15:45:08 · 453 阅读 · 0 评论 -
leetcode系列--680.验证回文字符串 Ⅱ
leetcode系列–第680题.验证回文字符串 Ⅱ给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。输入: s = "abca"输出: true解释: 你可以删除c字符。// 思路还是双指针对撞,只是在第一次返回false的时候去调用另外一个指针对撞的方法function isPalindrome(str, l, r) { while (l < r) { if (str[l] != str[r]) { return false原创 2021-12-23 20:47:21 · 652 阅读 · 0 评论 -
leetcode系列--9.回文数
leetcode系列–第9题.回文数给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。// 示例输入:x = 121输出:true// 数字转换成数组 var isPalindrome = function (x) { let y = String(x).split('') for (let i = 0; i < y.length; i+原创 2021-12-23 20:00:55 · 589 阅读 · 0 评论 -
leetcode系列--234.回文链表
leetcode系列–第234题.回文链表给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。输入:head = [1,2,2,1]输出:true// 作为一个菜????前端,leetcode中最不太喜欢的题就是链表和树了,因为太抽象了,哈哈哈// 先把链表的val存入数组中转换成判断数组是否是回文数组var isPalindrome = function (head) { const vals = [] while (原创 2021-12-23 22:03:56 · 180 阅读 · 0 评论 -
leetcode系列-714. 买卖股票的最佳时机含手续费
买卖股票的最佳时机含手续费原创 2022-06-09 21:14:15 · 60 阅读 · 0 评论 -
leetcode系列-121. 买卖股票的最佳时机
买卖股票的最佳时机原创 2022-06-08 20:11:29 · 57 阅读 · 0 评论 -
leetcode系列-309.最佳买卖股票时机含冷冻期
最佳买卖股票时机含冷冻期原创 2022-06-13 22:00:39 · 64 阅读 · 0 评论 -
leetcode系列-242.有效的字母异位词
leetcode系列–第242题.有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false/** * @param {string} s * @param {string} t * @retu原创 2022-03-16 20:15:50 · 189 阅读 · 0 评论 -
leetcode系列-383.赎金信
leetcode系列–第383题.赎金信给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true ;否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。示例 1:输入:ransomNote = "a", magazine = "b"输出:false示例 2:输入:ransomNote = "aa", magazine = "ab"输出:f原创 2022-03-24 20:53:58 · 454 阅读 · 0 评论