刷题笔记
文章平均质量分 78
熠熠98
脚踏实地,仰望星空!
欢迎访问博客:lish98.blog.csdn.net
展开
-
美团二面:498. 对角线遍历
498. 对角线遍历题目描述:给你一个大小为 m x n 的矩阵 mat ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。原创 2022-04-24 11:48:50 · 296 阅读 · 0 评论 -
海量数据处理方法总结 & 常见大数据题目汇总
本文针对常用的处理大数据的方法进行了详细讲解,并汇总了常见的大数据题目,更是对大数据小内存排序题目做了详细的图解分析,相信大家看完这篇文章,下次再遇到大数据题目一定会对思如泉涌。..................原创 2022-04-14 15:29:00 · 3247 阅读 · 1 评论 -
二分法应用:875. 爱吃香蕉的珂珂
875. 爱吃香蕉的珂珂思路分析我们要找的是速度。因为题目限制了珂珂一个小时之内只能选择一堆香蕉吃,因此速度的最小值肯定需要大于等于 1,同时也要小于等于这几堆香蕉中,数量最多的那一堆。还是因为珂珂一个小时之内只能选择一堆香蕉吃,因此:每堆香蕉吃完的耗时 = 这堆香蕉的数量 / 珂珂一小时吃香蕉的数量。根据题意,这里的 / 在 不能整除 的时候,需要 向上取整 。代码实现class Solution { public int minEatingSpeed(int[] piles, int原创 2022-04-22 14:26:21 · 241 阅读 · 0 评论 -
如何高效的对有序数组/链表去重?& 316.去除重复字母 详解
本文针对常见的去重题目进行了分析原创 2022-04-04 11:39:38 · 1146 阅读 · 0 评论 -
一套模板秒杀滑动窗口 & leetcode滑动窗口题目汇总
本文介绍了滑动窗口的通用方法,并对leetcode上常见的滑动窗口相关题目做了讲解原创 2022-04-16 15:12:23 · 806 阅读 · 0 评论 -
440. 字典序的第K小数字 详解 & leetcode中相关的 top-K 题目
剑指 Offer II 076. 数组中的第 k 大的数字建立一个优先级队列(小顶堆),里面只维护 k 个元素;首先将数组中前k个元素放入堆中,堆顶是最小的元素;后面从第 k+1 个数开始遍历数组,比较堆顶元素与数组元素中的值,当堆顶元素小于数组中的元素时,将堆顶元素弹出,新元素入堆,这样最终堆顶元素即为第k大。public int findKthLargest(int[] nums, int k) { // 构造小顶堆 PriorityQueue<Integer>原创 2022-04-11 19:42:54 · 759 阅读 · 0 评论 -
回溯算法 之 全排列问题 & 46. 全排列 & 47. 全排列 II
46. 全排列这里要说明一点:排列是有序的,也就是说 [1,2] 和 [2,1] 是两个集合,它和子集以及组合是不同的。注意:这里题目中说明了数组中不包含重复数字。思路一:使用used数组来标记已经选择的元素思路分析:使用一个额外的数组used来记录的是此时数组中的哪些元素已经在path中了,因为一个排列里一个元素只能使用一次。class Solution { List<List<Integer>> result = new ArrayList<>();原创 2022-04-18 09:50:58 · 219 阅读 · 0 评论 -
0-1背包问题讲解 & leetcode相关题目总结
1 0-1背包问题理论基础1.1 0-1背包问题描述0-1背包问题描述有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。其实这个问题我们也可以用暴力解法,每一件物品其实只有两个状态,取或者不取,所以可以使用 回溯法 搜索出所有的情况,那么时间复杂度就是o(2^n),这里的n表示物品数量。暴力的解法是 指数级别 的时间复杂度。进而才需要动态规划的解法来进行优化!在下面的讲解原创 2022-04-22 13:54:19 · 2007 阅读 · 0 评论 -
算法题:判断一棵二叉树是不是另一棵二叉树的子树
思路分析定义:父树包含子树的所有节点,注意,空树不是任何数的子树。父树:A子树:B解法:用递归来实现从A树的根节点开始,判断其所有的节点是不是依次和树B相同;如不同,递归调用函数,继续判断树A当前节点的左子树的所有节点或右子树的所有节点是否和树B所有节点相同,直到遍历到父树A的叶子节点;如果不是完全相同,则树B不是树A子树;如果直到遍历到树B的叶子节点,其所有节点在树A中均有,则树B是树A的子树。代码实现public class Solution { publi.原创 2022-04-08 17:43:30 · 1234 阅读 · 0 评论 -
机考遇到了不同路径的题
980. 不同路径 III Hard题目描述:在二维网格 grid 上,有 4 种类型的方格:1 表示起始方格。且只有一个起始方格。2 表示结束方格,且只有一个结束方格。0 表示我们可以走过的空方格。-1 表示我们无法跨越的障碍。返回在四个方向(上、下、左、右)上行走时,从起始方格到结束方格的不同路径的数目,每一个无障碍方格都要通过一次。dfs题解:回溯深度优先搜索尝试遍历每一个 0 方格,并在走过的方格里留下一个障碍。回溯的时候,我们要删除那些自己留下的障碍。和岛屿问题的思路很像原创 2022-04-03 15:23:01 · 242 阅读 · 0 评论 -
面试被突如其来的中位数算法题干趴了
295. 数据流的中位数思路分析思路一:用一个数组记录所有addNum添加进来的数字,通过插入排序的逻辑保证数组中的元素有序,当调用findMedian方法时,可以通过数组索引直接计算中位数。用数组作为底层容器:缺点:addNum搜索插入位置的时候可以用二分搜索算法,但是插入操作需要搬移数据,所以最坏时间复杂度为 O(N)。用链表作为底层容器:缺点:链表插入元素很快,但是查找插入位置的时候只能线性遍历,最坏时间复杂度还是 O(N),而且findMedian方法也需要遍历寻找中间索引,最原创 2022-04-01 20:55:31 · 592 阅读 · 0 评论 -
图论并查集(Union-Find)算法及应用详解 & 经典算法题之朋友圈
面试突然遇到朋友圈问题,其本质是通过并查集解决,来补充一下知识盲区。原创 2022-04-01 19:37:25 · 1253 阅读 · 0 评论 -
LRU 算法分析与实现
常见的缓存算法LRU (Least recently used) 最近最少使用,如果数据最近被访问过,那么将来被访问的几率也更高。LFU (Least frequently used) 最不经常使用,如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小。FIFO (Fist in first out) 先进先出, 如果一个数据最先进入缓存中,则应该最早淘汰掉。LRU 算法介绍题目链接:⼒扣第 146 题「LRU缓存机制」题目分析:⾸先要接收⼀个 capacity原创 2022-04-01 12:43:32 · 999 阅读 · 2 评论 -
刷题笔记之拓扑排序
https://blog.csdn.net/qq_37703292/article/details/119678047原创 2022-02-21 14:34:53 · 534 阅读 · 0 评论