稀碎专题

稀碎从零算法笔记Day56-LeetCode:组合总和 Ⅳ

题型:DP、数组 链接:377. 组合总和 Ⅳ - 力扣(LeetCode) 来源:LeetCode 题目描述 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 题目样例 示例 1: 输入:nums = [1,2,3], target = 4

稀碎从零算法笔记Day54-LeetCode:39. 组合总和

题型:数组、树、DFS、回溯 链接:39. 组合总和 - 力扣(LeetCode) 来源:LeetCode 题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可

稀碎从零算法笔记Day53-LeetCode:不同路径 II

稀碎系列有点更不动(更多是自己懈怠了) 题型:矩阵、模拟 链接:63. 不同路径 II - 力扣(LeetCode) 来源:LeetCode 题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑网格中有障碍物。那么从左上角到右

稀碎从零算法笔记Day51-LeetCode:最小路径和

题型:DP、数组、矩阵 链接:64. 最小路径和 - 力扣(LeetCode) 来源:LeetCode 题目描述 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 题目样例 示例 1: 输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输出:7解释:

稀碎从零算法笔记Day48-LeetCode:三角形最小路径和

题型:DP、二维DP、矩阵 链接:120. 三角形最小路径和 - 力扣(LeetCode) 来源:LeetCode 题目描述 给定一个三角形 triangle ,找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到

稀碎从零算法笔记Day46-LeetCode:互质树

这几天有点懈怠了 题型:树、DFS、BSF、数学 链接:1766. 互质树 - 力扣(LeetCode) 来源:LeetCode 题目描述 给你一个 n 个节点的树(也就是一个无环连通无向图),节点编号从 0 到 n - 1 ,且恰好有 n - 1 条边,每个节点有一个值。树的 根节点 为 0 号点。 给你一个整数数组 nums 和一个二维数组 edges 来表示这棵树。nums[i]

稀碎从零算法笔记Day45-LeetCode:电话号码的字母组合

题型:映射、回溯算法、递归 链接:17. 电话号码的字母组合 - 力扣(LeetCode) 来源:LeetCode 题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 题目样例 示例 1: 输入:digits = "23"输出:["ad","ae"

稀碎从零算法笔记Day39-LeetCode:有向无环图中一个节点的所有祖先

感觉写的越来越难了hhh,一晚上只研究明白了2道题 题型:拓扑排序、BFS、图 链接:2192. 有向无环图中一个节点的所有祖先 - 力扣(LeetCode) 来源:LeetCode 题目描述(红字为笔者添加) 给你一个正整数 n ,它表示一个 有向无环图 中节点的数目,节点编号为 0 到 n - 1 (包括两者)。 给你一个二维整数数组 edges ,其中 edges[i] = [f

稀碎从零算法笔记Day36-LeetCode:H指数

有点绕的一个题,题目描述的有点奇怪(可以看下英文?) 题型:数组、模拟 链接:274. H 指数 - 力扣(LeetCode) 来源:LeetCode 题目描述 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指

稀碎从零算法笔记Day35-LeetCode:字典序的第K小数字

要考虑完结《稀碎从零》系列了哈哈哈 这道题和【LC.42 接雨水】,我愿称之为【笔试界的颜良&文丑】 题型:字典树、前缀获取、数组、树的先序遍历 链接:440. 字典序的第K小数字 - 力扣(LeetCode) 来源:LeetCode 题目描述(红字为笔者添加) 这道题说实话,看不懂是其hard的很大一个原因 给定整数 n 和 k,返回  [1, n] 中字典序第 k 小的数字。

稀碎从零算法笔记Day25-LeetCode:数组中的第K个最大元素

题型:排序、堆 链接:215. 数组中的第K个最大元素 - 力扣(LeetCode) 来源:LeetCode C++代码 优先队列建堆 class Solution {public:int findKthLargest(vector<int>& nums, int k) {// 小根堆 根节点就是第 k 大的元素// 优先队列,但是降序priority_queue<int,vector

稀碎从零算法笔记Day24-LeetCode:存在重复元素

前言:本打算练习下机写快排,但是快排超时了(为什么sort没超时啊。。) 题型:排序、哈希表 链接:存在重复元素 - 提交记录 - 力扣(LeetCode) 来源:LeetCode 题目描述 题目样例 题目思路 C++代码 class Solution {public:bool containsDuplicate(vector<int>& nums) {// 哈希表// 无序集合

稀碎从零算法笔记Day22-LeetCode:

题型:链表 链接:2. 两数相加 - 力扣(LeetCode) 来源:Le'e't 题目描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 题目样例 示例 1: 输入:l1 = [2,

稀碎从零算法笔记Day22-LeetCode:存在重复元素 II

题型:哈希表、数组 链接:219. 存在重复元素 II - 力扣(LeetCode) 来源:LeetCode 题目描述 给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。 题目样例 示例 1: 输入:nu

稀碎从零算法笔记Day19-LeetCode:相交链表

题型:链表基本操作 链接:160. 相交链表 - 力扣(LeetCode) 来源:LeetCode 题目描述 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后,链表必须 保持其原始结构

稀碎从零算法笔记Day17-LeetCode:有效的括号

题型:栈 链接:20. 有效的括号 - 力扣(LeetCode) 来源:LeetCode 题目描述(红字为笔者添加) 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。 正确情况: ( { [ ]  } )

稀碎从零算法笔记Day13-LeetCode:只出现一次的数字 II

题型:数组、哈希表、位运算 链接:137. 只出现一次的数字 II - 力扣(LeetCode) 来源:LeetCode 题目描述 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 题目样例 示例 1: 输入:nums = [2,2,3,

稀碎从零算法笔记Day11-LeetCode:有效的字母异位词

题型:字符串、哈希表、排序 链接:242. 有效的字母异位词 - 力扣(LeetCode) 来源:LeetCode 题目描述 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 题目样例 示例 1: 输入: s = "anagram", t = "nagaram"输

稀碎从零算法笔记Day9-LeetCode:最长公共前缀

题型:字符串 链接:14. 最长公共前缀 - 力扣(LeetCode) 来源:LeetCode 题目描述(红字为笔者添加) 编写一个函数来查找字符串数组中的最长公共前缀(前X个字母相同)。 如果不存在公共前缀,返回空字符串 ""。 题目样例 示例 1: 输入:strs = ["flower","flow","flight"]输出:"fl" 示例 2: 输入:strs = [

稀碎从零算法笔记Day9-LeetCode:最后一个单词的长度

题型:字符串、反转字符串 链接:58. 最后一个单词的长度 - 力扣(LeetCode) 来源:LeetCode 题目描述(红字为笔者添加) 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。(不需要把字符串求出来) 单词 是指仅由字母组成、不包含任何空格字符的最大 题目样例 示例 1: 输入:s = "Hello World"

稀碎从零算法笔记Day7-LeetCode:买卖股票的最佳时机

题型:数组、动态规划 链接:121. 买卖股票的最佳时机 - 力扣(LeetCode) 来源:LeetCode 题目描述 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。