LeetCode
文章平均质量分 77
Bread Sir
记录算法之路
展开
-
LeetCode 双指针专题
例如,arr = [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1]。解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。而 arr = [3,2,1] 的下一个排列是 [1,2,3] ,因为 [3,2,1] 不存在一个字典序更大的排列。类似地,arr = [2,3,1] 的下一个排列是 [3,1,2]。例如,arr = [1,2,3] 的下一个排列是 [1,3,2]。输出:[[-1,-1,2],[-1,0,1]]原创 2024-03-30 10:29:42 · 893 阅读 · 0 评论 -
LeetCode 搜索回溯专题
子集组合问题78. 子集给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]]class Solution {public: vector<int> sub = {};原创 2021-09-15 11:38:32 · 315 阅读 · 0 评论 -
LeetCode 前缀和问题
一维前缀和连续子数组问题很多连续子数组问题都可以使用一维前缀和进行解决,1、连续子数组和问题给定一个数组和目标值,求连续子数组的和等于目标值的个数。数组中的值都大于0这种题就比较简单,可以使用双指针来判断。def solve(nums, target): n = len(nums) if n == 0: return 0 if target == 0: #如果都为正数,不可能和为0 return 0 l, r = 0,0 #原创 2021-06-01 10:06:35 · 376 阅读 · 0 评论 -
LeetCode 动态规划专题
这是整理的LeetCode上的动态规划专题,按照codeTop上的频率顺序从高到低进行整理并按照别人整理的再次整理。原创 2021-06-01 10:02:49 · 164 阅读 · 0 评论 -
LeetCode 链表专题
这是整理的LeetCode上的链表专题,按照codeTop上的频率顺序从高到低进行整理。原创 2021-06-01 10:01:45 · 260 阅读 · 0 评论 -
LeetCode 二分专题
这是整理的LeetCode上的二叉树专题,先按照codeTop上的频率顺序从高到低进行整理,然后按别人整理的进行再次整理。原创 2021-06-01 10:00:16 · 247 阅读 · 0 评论 -
LeetCode 二叉树专题
这是整理的LeetCode上的二叉树专题,按照codeTop上的频率顺序从高到低进行整理。原创 2021-06-01 09:53:24 · 170 阅读 · 0 评论 -
LeetCode 位运算专题
477. 汉明距离总和两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量。计算一个数组中,任意两个数之间汉明距离的总和。示例:输入: 4, 14, 2输出: 6解释: 在二进制表示中,4表示为0100,14表示为1110,2表示为0010。(这样表示是为了体现后四位之间关系)所以答案为:HammingDistance(4, 14) + HammingDistance(4, 2) + HammingDistance(14, 2) = 2 + 2 + 2 = 6.在计算汉明距离时原创 2021-05-28 10:06:45 · 98 阅读 · 0 评论 -
LeetCode 字符串专题
字符串相加给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。提示:num1 和num2 的长度都小于 5100num1 和num2 都只包含数字 0-9num1 和num2 都不包含任何前导零你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式// 模拟整数相加class Solution {public: string addStrings(string num1, string num2) { string.原创 2021-05-27 11:12:37 · 90 阅读 · 0 评论 -
LeetCode 异或题
首先介绍一下异或运算:异或的一些性质:x XOR y = z,那么 x = y XOR z。x XOR x = 0x XOR 0 = x1720. 解码异或后的数组未知 整数数组 arr 由 n 个非负整数组成。经编码后变为长度为 n - 1 的另一个整数数组 encoded ,其中 encoded[i] = arr[i] XOR arr[i + 1] 。例如,arr = [1,0,2,1] 经编码后得到 encoded = [1,2,3] 。给你编码后的数组 encoded 和原数组 a原创 2021-05-11 09:56:43 · 384 阅读 · 0 评论 -
LeetCode 滑动窗口专题
3. 无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的原创 2021-05-05 21:37:52 · 134 阅读 · 1 评论 -
LeetCode 单调栈专题
84. 柱状图中最大的矩形给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3]输出: 10第一种解法:暴力(超时)。我们可以遍历每个柱子,求得以当前柱子高度的最大面积矩形,以当前柱子开始,从左扫描,从右扫描,直到原创 2021-04-14 16:50:11 · 536 阅读 · 0 评论 -
146. LRU 缓存机制
运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数据之前删除最原创 2021-03-14 15:51:41 · 100 阅读 · 0 评论 -
剑指offer (From Leetcode) 汇总
剑指 Offer 03. 数组中重复的数字找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000思路一:// 本题可采用set这一数据结构,遍历数组并加入set中,如果某个数在set中已经存在了,那么便可以原创 2021-03-06 14:20:00 · 287 阅读 · 0 评论