
leetcode
文章平均质量分 91
Elmerr
这个作者很懒,什么都没留下…
展开
-
算法之剑指offer题目总结
简介剑指offer中的题目是面试中考察的重点,本篇文章对这些题目进行总结,方便日后阅读。题目题目顺序参考 leetcode 中出现的顺序。1. 数组中重复的数字2. 二维数组中的查找 3. 替换空格 4. 从尾到头打印链表 5. 重建二叉树 6. 用两个栈实现队列 7. 斐波那契数列 8. 青蛙跳台阶问题 9. 旋转数组的最小数字 10. 矩阵中的路径 解析1. 数组中重复的数字题目描述找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有原创 2021-05-07 00:24:35 · 2014 阅读 · 3 评论 -
算法之「组合总和」问题
简介本篇文章介绍「组合总和」各种变形题的解题思路,争取能够攻克所有组合数问题。题目39. 组合总和40. 组合总和 II216. 组合总和 III377. 组合总和 Ⅳ下面通过例子由浅至深详细讲解。所有例题均来自leetcode,所示代码均通过所有测试。解析39. 组合总和题目描述给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。原创 2021-04-24 14:24:38 · 3442 阅读 · 1 评论 -
算法多线程leetcode题目总结(多解法实现)
简介本文汇总了leetcode上多线程题目,并对每一道题进行多方法解答,并分析不同方法之间的优劣。文中示例代码为Java。题目1114. 按序打印 简单1115. 交替打印FooBar 中等1116. 打印零与奇偶数 中等1117. H2O 生成 中等以上题目均来自leetcode.解答1114. 按序打印题目描述我们提供了一个类:public class Foo { public void first() { print("first"); } public void原创 2021-04-20 19:16:33 · 2564 阅读 · 1 评论 -
算法之堆的应用(优先队列)
简介堆(Heap)是一个可以被看成近似完全二叉树的数组。树上的每一个结点对应数组的一个元素。除了最底层外,该树是完全充满的,而且是从左到右填充。—— 来自:《算法导论》堆包括最大堆和最小堆:最大堆的每一个节点(除了根结点)的值不大于其父节点;最小堆的每一个节点(除了根结点)的值不小于其父节点。堆常见的操作:HEAPIFY 建堆:把一个乱序的数组变成堆结构的数组,时间复杂度为 O(n)O(n)O(n)。HEAPPUSH:把一个数值放进已经是堆结构的数组中,并保持堆结构,时间复杂度为 O(log&nb原创 2021-04-19 00:27:17 · 351 阅读 · 0 评论 -
算法leetcode 彻底搞懂LRU和LFU缓存问题
简介LRU (Least Recently Used) 缓存,即在缓存容量达到上限的条件下,删除最久未使用过的数据,腾出空间存储新的数据。LFU (Least Frequently Used) 缓存,即在缓存容量达到上限的条件下,删除使用频率最少的数据,当使用频率相同时,删除最久未使用的数据。这两种缓存算法在实践中用得非常普遍,例如MySQL的内存数据页淘汰算法,Redis的淘汰策略等。例题1. T146. LRU缓存机制 中等2. T460. LFU缓存 困难以上题目均来自leetcod原创 2021-04-15 15:38:28 · 745 阅读 · 0 评论 -
算法之动态规划总结(11种DP类型,70道全部搞懂)
简介参考文章,将所有的DP问题分成11大类,本文将这些题目的解法进行探讨。所有题目均来自leetcode。题目1、线性 DP最经典单串:最长上升子序列最经典双串:最长公共子序列经典问题:三角形最小路径和最大子序和乘积最大子数组鸡蛋掉落(DP+二分)俄罗斯套娃信封问题打家劫舍系列: (打家劫舍3 是树形DP)打家劫舍打家劫舍 II股票系列:买卖股票的最佳时机买卖股票的最佳时机 II买卖股票的最佳时机 III买卖股票的最佳时机 IV原创 2021-04-08 10:16:35 · 69181 阅读 · 14 评论 -
算法之股票最佳时机系列问题(一次搞定6道股票问题)
简述本文旨在总结leetcode中遇到的一系列股票问题,分别详细阐述解决方法和各问题之间的区别。目录1. T121 买卖股票的最佳时机 简单2. T122 买卖股票的最佳时机 II 简单3. T123 买卖股票的最佳时机 III 困难4. T188 买卖股票的最佳时机 IV 困难5. T309 最佳买卖股票时机含冷冻期 中等6. T714 买卖股票的最佳时机含手续费 中等以上题目均来自leetcode题目####1. 买卖股票的最佳时机题目描述给定一个数组,它的第 i 个元素是原创 2021-04-07 11:38:31 · 956 阅读 · 0 评论 -
算法之N数之和
简述从例题的角度出发,一次解决所有的N数之和问题。例题目录1. T1. 两数之和 简单2. T15. 三数之和 中等3. T18. 四数之和 中等4. T16. 最接近的三数之和 中等5. T633. 平方数之和 中等6. T剑指 Offer 57. 和为s的两个数字 简单7. T剑指 Offer 57 - II. 和为s的连续正数序列 简单详细1. 两数之和题目描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,原创 2021-04-07 00:39:41 · 1947 阅读 · 1 评论 -
反转链表系列问题总结(多种解法多种题型)
简介反转链表是面试中常考问题,题型变化就那几种,包括整个链表的反转、范围反转等,本篇文章将这些问题放在一起进行讨论和总结,并对多种解法进行分析和对比,做到“一网打尽”!反转链表系列题目206. 反转链表 简单92. 反转链表 II 中等25. K 个一组翻转链表 困难以上题目均来自leetcode例题详细1、反转链表题目描述反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->原创 2021-03-25 15:18:13 · 512 阅读 · 0 评论 -
算法之单调栈的使用总结(含接雨水、柱状图等经典问题)
简述单调栈是栈内元素满足单调性的栈。假设需要维护一个单调递增栈,新元素进栈时,为了维护栈的单调性,需要弹出大于等于新元素的栈顶元素。对于数组中的元素,可以找到左侧/右侧第一个比它大/小的元素。寻找某一子数组,使得子数组中的最小值乘以子数组的长度最大。寻找某一子数组,使得子数组中的最小值乘以子数组所有元素和最大。例题目录1. 接雨水2. 柱状图中最大的矩形3. 最大宽度坡4. 表现良好的最长时间段5. 滑动窗口的最大值6. T456 132模式题目来源:leetcode例题原创 2021-03-24 19:06:57 · 334 阅读 · 0 评论 -
算法之旋转数组的查找问题整理(附二分查找模板)
介绍旋转数组的定义:排好序的数组 nums 在某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。相关问题153. 寻找旋转排序数组中的最小值寻找旋转数组中的最小值,数组中每个元素的唯原创 2021-03-20 15:31:04 · 317 阅读 · 0 评论