随笔分类 -  高频面试系列

摘要:cookie 大家应该都熟悉,比如说登录某些网站一段时间后,就要求你重新登录;再比如有的同学很喜欢玩爬虫技术,有时候网站就是可以拦截住你的爬虫,这些都和 cookie 有关。如果你明白了服务器后端对于 cookie 和 session 的处理逻辑,就可以解释这些现象,甚至钻一些空子无限白嫖,待我慢慢 阅读全文
posted @ 2020-11-14 22:15 labuladong 阅读(389) 评论(0) 推荐(0) 编辑
摘要:读完本文,你可以去力扣拿下如下题目: 5.最长回文子串 回文串是面试常常遇到的问题(虽然问题本身没啥意义),本文就告诉你回文串问题的核心思想是什么。 首先,明确一下什:回文串就是正着读和反着读都一样的字符串。 比如说字符串 aba 和 abba 都是回文串,因为它们对称,反过来还是和本身一样。反之, 阅读全文
posted @ 2020-11-12 19:47 labuladong 阅读(978) 评论(0) 推荐(0) 编辑
摘要:读完本文,你可以去力扣拿下如下题目: 855.考场就座 这是 LeetCode 第 855 题,有趣且具有一定技巧性。这种题目并不像动态规划这类算法拼智商,而是看你对常用数据结构的理解和写代码的水平,个人认为值得重视和学习。 另外说句题外话,很多读者都问,算法框架是如何总结出来的,其实框架反而是慢慢 阅读全文
posted @ 2020-11-12 19:46 labuladong 阅读(175) 评论(0) 推荐(0) 编辑
摘要:读完本文,你可以去力扣拿下如下题目: 78.子集 46.全排列 77.组合 今天就来聊三道考察频率高,而且容易让人搞混的算法问题,分别是求子集(subset),求排列(permutation),求组合(combination)。 这几个问题都可以用回溯算法模板解决,同时子集问题还可以用数学归纳思想解 阅读全文
posted @ 2020-11-12 19:44 labuladong 阅读(1123) 评论(0) 推荐(0) 编辑
摘要:如何去除有序数组的重复元素 读完本文,你不仅学会了算法套路,还可以顺便去 LeetCode 上拿下如下题目: 26.删除排序数组中的重复项 83.删除排序链表中的重复元素 27.移除元素 283.移动零 我们知道对于数组来说,在尾部插入、删除元素是比较高效的,时间复杂度是 O(1),但是如果在中间或 阅读全文
posted @ 2020-11-12 19:43 labuladong 阅读(815) 评论(0) 推荐(0) 编辑
摘要:读完本文,你可以去力扣拿下如下题目: 292.Nim游戏 877.石子游戏 319.灯泡开关 下文是我在 LeetCode 刷题过程中总结的三道有趣的「脑筋急转弯」题目,可以使用算法编程解决,但只要稍加思考,就能找到规律,直接想出答案。 一、Nim 游戏 游戏规则是这样的:你和你的朋友面前有一堆石子 阅读全文
posted @ 2020-11-12 19:41 labuladong 阅读(146) 评论(0) 推荐(0) 编辑
摘要:读完本文,你可以去力扣拿下如下题目: 448.找到所有数组中消失的数字 之前也有文章写过几个有趣的智力题,今天再聊一道巧妙的题目。 题目非常简单: 给一个长度为 n 的数组,其索引应该在 [0,n),但是现在你要装进去 n + 1 个元素 [0,n],那么肯定有一个元素装不下嘛,请你找出这个缺失的元 阅读全文
posted @ 2020-11-11 20:40 labuladong 阅读(388) 评论(0) 推荐(0) 编辑
摘要:读完本文,你可以去力扣拿下如下题目: 55.跳跃游戏 45.跳跃游戏 II 经常有读者在后台问,动态规划和贪心算法到底有啥关系。我们之前的文章 贪心算法之区间调度问题 就说过一个常见的时间区间调度的贪心算法问题。 说白了,贪心算法可以理解为一种特殊的动态规划问题,拥有一些更特殊的性质,可以进一步降低 阅读全文
posted @ 2020-11-11 20:39 labuladong 阅读(853) 评论(0) 推荐(1) 编辑
摘要:读完本文,你可以去力扣拿下如下题目: 382.链表随机节点 398.随机数索引 我最近在 LeetCode 上做到两道非常有意思的题目,382 和 398 题,关于水塘抽样算法(Reservoir Sampling),本质上是一种随机概率算法,解法应该说会者不难,难者不会。 我第一次见到这个算法问题 阅读全文
posted @ 2020-11-11 20:38 labuladong 阅读(184) 评论(0) 推荐(0) 编辑
摘要:读完本文,你可以去力扣拿下如下题目: 645.错误的集合 今天就聊一道很看起来简单却十分巧妙的问题,寻找缺失和重复的元素。之前的一篇文章「寻找缺失元素」也写过类似的问题,不过这次的和上次的问题使用的技巧不同。 这是 LeetCode 645 题,我来描述一下这个题目: 给一个长度为 N 的数组 nu 阅读全文
posted @ 2020-11-11 20:37 labuladong 阅读(364) 评论(0) 推荐(0) 编辑
摘要:读完本文,你可以去力扣拿下如下题目: 26.删除排序数组中的重复项 83.删除排序链表中的重复元素 我们知道对于数组来说,在尾部插入、删除元素是比较高效的,时间复杂度是 O(1),但是如果在中间或者开头插入、删除元素,就会涉及数据的搬移,时间复杂度为 O(N),效率较低。 所以对于一般处理数组的算法 阅读全文
posted @ 2020-11-11 20:35 labuladong 阅读(292) 评论(0) 推荐(0) 编辑
摘要:读完本文,你可以去力扣拿下如下题目: 234.回文链表 我们之前有两篇文章写了回文串和回文序列相关的问题。 寻找回文串的核心思想是从中心向两端扩展: string palindrome(string& s, int l, int r) { // 防止索引越界 while (l >= 0 && r < 阅读全文
posted @ 2020-11-11 20:34 labuladong 阅读(338) 评论(0) 推荐(0) 编辑
摘要:一文秒杀三道括号相关的题目 读完本文,你不仅学会了算法套路,还可以顺便去 LeetCode 上拿下如下题目: 20.有效的括号 921.使括号有效的最小插入 1541.平衡括号串的最少插入 判断合法括号串 对括号的合法性判断多次在笔试中出现,现实中也很常见,比如说我们写的代码,编辑器会检查括号是否正 阅读全文
posted @ 2020-11-11 20:32 labuladong 阅读(441) 评论(0) 推荐(0) 编辑
摘要:读完本文,你可以去力扣拿下如下题目: 172.阶乘后的零 793.阶乘后K个零 笔试题中经常看到阶乘相关的题目,今天说两个最常见的题目: 1、输入一个非负整数 n,请你计算阶乘 n! 的结果末尾有几个 0。 比如说输入 n = 5,算法返回 1,因为 5! = 120,末尾有一个 0。 函数签名如下 阅读全文
posted @ 2020-11-11 15:58 labuladong 阅读(969) 评论(0) 推荐(0) 编辑
摘要:读完本文,你可以去力扣拿下如下题目: 42.接雨水 接雨水这道题目挺有意思,在面试题中出现频率还挺高的,本文就来步步优化,讲解一下这道题。 先看一下题目: 就是用一个数组表示一个条形图,问你这个条形图最多能接多少水。 int trap(int[] height); 下面就来由浅入深介绍暴力解法 → 阅读全文
posted @ 2020-11-11 00:12 labuladong 阅读(460) 评论(0) 推荐(0) 编辑
摘要:读完本文,你可以去力扣拿下如下题目: 20.有效的括号 对括号的合法性判断是一个很常见且实用的问题,比如说我们写的代码,编辑器和编译器都会检查括号是否正确闭合。而且我们的代码可能会包含三种括号 [](){},判断起来有一点难度。 本文就来聊一道关于括号合法性判断的算法题,相信能加深你对栈这种数据结构 阅读全文
posted @ 2020-11-10 22:44 labuladong 阅读(408) 评论(0) 推荐(0) 编辑
摘要:读完本文,你可以去力扣拿下如下题目: 392.判断子序列 二分查找本身不难理解,难在巧妙地运用二分查找技巧。对于一个问题,你可能都很难想到它跟二分查找有关,比如前文 最长递增子序列 就借助一个纸牌游戏衍生出二分查找解法。 今天再讲一道巧用二分查找的算法问题:如何判定字符串 s 是否是字符串 t 的子 阅读全文
posted @ 2020-11-10 22:41 labuladong 阅读(282) 评论(0) 推荐(0) 编辑
摘要:读完本文,你可以去力扣拿下如下题目: 316.去除重复字母 1081.不同字符的最小子序列 关于去重算法,应该没什么难度,往哈希集合里面塞不就行了么? 最多给你加点限制,问你怎么给有序数组原地去重,这个我们旧文 如何高效地给有序数组/链表去重。 本文讲的问题应该是去重相关算法中难度最大的了,把这个问 阅读全文
posted @ 2020-11-10 22:39 labuladong 阅读(1563) 评论(0) 推荐(0) 编辑
摘要:读完本文,你可以去力扣拿下如下题目: 204.计数质数 素数的定义看起来很简单,如果一个数如果只能被 1 和它本身整除,那么这个数就是素数。 不要觉得素数的定义简单,恐怕没多少人真的能把素数相关的算法写得高效。比如让你写这样一个函数: // 返回区间 [2, n) 中有几个素数 int countP 阅读全文
posted @ 2020-11-10 22:36 labuladong 阅读(382) 评论(0) 推荐(0) 编辑
摘要:吃葡萄问题 学好算法全靠套路,认准 labuladong 就够了! 如果你在迎战秋招,东哥悄悄告诉你一些 笔试中的套路。 相关推荐: 团灭 LeetCode 股票买卖问题 一文看懂 session 和 cookie 读完本文,你可以去力扣拿下如下题目: 吃葡萄 今天在牛客网上做了一道叫做「吃葡萄」的 阅读全文
posted @ 2020-11-09 19:21 labuladong 阅读(353) 评论(0) 推荐(0) 编辑

我的公众号 labuladong,专注于 LeetCode 刷题,欢迎关注。