【LeetCode】面试分类刷题
文章平均质量分 55
将面试常用题型进行整理分类
面试前分类复习
赛文X
九九六の神谕
展开
-
【剑指Offer | C++ 】面试题6:替换空格
输入一个链表的头节点,从尾到头反过来打印出每个节点的值,不允许修改输入数据(不能改变链表的节构)。链表节点定义如下:原创 2022-12-03 09:57:35 · 484 阅读 · 0 评论 -
【想要九九六,天天刷力扣】深度优先算法 DFS | 递归算法 (一般用于树TreeNode结构)
题目列表DFS概述题目从根节点到叶节点的路径数字之和单值二叉树根据二叉树创建字符串[两数之和 IV 输入 BST](https://leetcode-cn.com/problems/two-sum-iv-input-is-a-bst)左叶子之和前序遍历构造二叉搜索树迷你语法分析器建立四叉树两棵二叉搜索树中的所有元素DFS概述众所周知,DFS是面试考察重点之一!深度优先搜索属于图算法的一种,是一个针对图和树的遍历算法,英文缩写为DFS即Depth First Search,如下图所示。下面列举了使原创 2022-05-01 09:11:08 · 497 阅读 · 0 评论 -
【简明算法】Boyer–Moore多数投票算法 | 用于寻找多数
导航前言应用场景原理及方法复杂度👇直接看代码前言博耶-摩尔多数投票算法(英语:Boyer–Moore majority vote algorithm),中文常作多数投票算法、摩尔投票算法等,是一种用来寻找一组元素中占多数元素的常数空间级时间复杂度算法。这一算法由罗伯特·S·博耶和J·斯特罗瑟·摩尔在1981年发表,也是处理数据流的一种典型算法。2013 年计算机学科专业基础综合(408)真题应用场景寻找数组中占一半以上的元素例如 [1,2,3,3,3] 中的 3原理及方法多数的数和其原创 2022-04-10 09:49:50 · 289 阅读 · 0 评论 -
Python高效处理数组类边界情况
目录图片平滑器问题解法一:直接判断解法二:for优化遍历解法三:提前存储坐标[荐]图片平滑器问题图像平滑器 是大小为 3 x 3 的过滤器,用于对图像的每个单元格平滑处理,平滑处理后单元格的值为该单元格的平均灰度。每个单元格的 平均灰度 定义为:该单元格自身及其周围的 8 个单元格的平均值,结果需向下取整。(即,需要计算蓝色平滑器中 9 个单元格的平均值)。如果一个单元格周围存在单元格缺失的情况,则计算平均灰度时不考虑缺失的单元格(即,需要计算红色平滑器中 4 个单元格的平均值)。示例:题原创 2022-03-28 11:27:53 · 1275 阅读 · 0 评论 -
Python手搓代码:位运算(&、|、^、~、>>、<<) 类型算法总结
目录位运算简介题目列表或运算的最小翻转次数交替位二进制数二进制表示中质数个计算置位位运算简介位运算能够大幅加快计算。python中进制转换:可以用 (x >> k) & 1 得到 x 二进制表示的第 k 位题目列表或运算的最小翻转次数给你三个正整数 a、b 和 c。你可以对 a 和 b 的二进制表示进行位翻转操作,返回能够使按位或运算a OR b == c 成立的最小翻转次数。「位翻转操作」是指将一个数的二进制表示任何单个位上的 1 变成 0 或者 0原创 2022-03-27 10:40:10 · 1695 阅读 · 0 评论 -
Python手搓代码:优先队列(大/小根堆) TopK 类型算法总结
目录数据流中的第 K 大元素解题思路实现代码数据流中的第 K 大元素设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。请实现 KthLargest 类:KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。int add(int val) 将 val 插入数据流 nums 后,返回当前数据流中第 k 大的元素。题目ID:703解题思路对于可能重复的数组来说,第K大元素类型题目直原创 2022-03-20 16:46:08 · 876 阅读 · 0 评论 -
Leetcode刷题:字典树 类型题目总结
词典中最长的单词给出一个字符串数组 words 组成的一本英语词典。返回 words 中最长的一个单词,该单词是由 words 词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返回答案中字典序最小的单词。若无答案,则返回空字符串。原文链接:https://leetcode-cn.com/problems/longest-word-in-dictionary/解题思路涉及到前缀,便考虑使用字典树结构用于存储相同前缀的内容,当然本题也可以用hash表进行存储遍历每个字符串,若前缀原创 2022-03-17 15:30:58 · 906 阅读 · 0 评论 -
【面试刷题】 深度优先算法DFS & 树Tree 类型总结
题目列表DFS概述题目从根节点到叶节点的路径数字之和单值二叉树根据二叉树创建字符串两数之和 IV - 输入 BST左叶子之和前序遍历构造二叉搜索树迷你语法分析器DFS概述众所周知,DFS是面试考察重点之一!深度优先搜索属于图算法的一种,是一个针对图和树的遍历算法,英文缩写为DFS即Depth First Search,如下图所示。下面列举了使用到DFS的题目:题目从根节点到叶节点的路径数字之和给定一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。每条从根原创 2022-03-17 09:09:39 · 658 阅读 · 0 评论 -
面试刷题总结:双指针 & 滑动窗口 & 双端遍历 (LeetCode)
目录前言题目列表两个链表的第一个公共节点考试的最大困扰度字符的最短距离前言双指针与滑动窗口是一类比较容易理解的题型广泛应用于链表与数组类型题目中题目列表两个链表的第一个公共节点https://leetcode-cn.com/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof输入两个链表,找出它们的第一个公共节点。题目ID:2322解题思路根据两个链表长度和相同,指针速度相同总会相遇两个跑速一样的人在不原创 2022-03-16 15:09:16 · 698 阅读 · 0 评论 -
Leetcode刷题:辅助栈 / 伴随栈 类型题目总结
剑指 Offer 30. 包含min函数的栈:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。https://leetcode-cn.com/problems/bao-han-minhan-shu-de-zhan-lcof/解题思路:利用辅助栈保存当前栈中最小值class MinStack: def __init__(self): self.stack = []原创 2022-03-16 10:19:12 · 374 阅读 · 0 评论 -
【面试刷题】水塘抽样算法 | 样本数未知 & 随机取样 & 节省存储空间
简述水塘抽样是一系列的随机算法,其目的在于从包含n个项目的集合S中选取k个样本,其中n为一很大或未知的数量,尤其适用于不能把所有n个项目都存放到内存的情况。时间复杂度:O(n)空间复杂度:O(1)题目列表链表随机节点给你一个单链表,随机选择链表的一个节点,并返回相应的节点值。每个节点 被选中的概率一样 。实现 Solution 类:Solution(ListNode head) 使用整数数组初始化对象。int getRandom()从链表中随机选择一个节点并返回该节点的值。链表中所有原创 2022-01-16 09:16:31 · 210 阅读 · 0 评论 -
三元组问题解决方法
背景:给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。示例 1:输入:nums = [1,2,3,4,5]输出:true解释:任何 i < j < k 的三元组都满足题意来源:力扣(LeetCode)解题思想:mid指针遍历数组同时记录mid原创 2022-01-12 16:45:23 · 657 阅读 · 0 评论 -
格雷码GrayCode生成算法
格雷码之间只有一位不同如00 100 01 11 10(可以看到是由上面的 0 1 翻转 后得到 1 0 再头添加1变成11 10)class Solution { public List<Integer> grayCode(int n) { List<Integer> res = new ArrayList<Integer>(); res.add(0); int head=1; for原创 2022-01-08 08:51:28 · 382 阅读 · 0 评论 -
LeetCode 由子集问题联想到的关于解决排列组合问题的位运算方法
子集:https://leetcode-cn.com/problems/subsets/子集Ⅱ:https://leetcode-cn.com/problems/subsets-ii/下面直接由代码代入,注释解释问题:算法概述:1.数组排序2.若发现没有选择上一个数,且当前数字与上一个数相同,则跳过class Solution {public: vector<int> t; vector<vector<int>> an.原创 2021-03-31 13:54:57 · 161 阅读 · 0 评论