
每日一题
文章平均质量分 83
聆听逝去的流
一名热爱编程的大三学生
展开
-
【每日一题】力扣 3. 无重复字符的最长子串
文章目录题目解题思路代码(C++)官方代码总结题目题目链接:3. 无重复字符的最长子串给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的原创 2022-04-10 20:42:06 · 429 阅读 · 1 评论 -
【每日一题】力扣 剑指 Offer 04. 二维数组中的查找
文章目录题目解题思路代码(C++)暴力二分线性查找总结题目题目链接:剑指 Offer 04. 二维数组中的查找在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14原创 2022-04-08 22:09:00 · 1137 阅读 · 4 评论 -
【每日一题】力扣 347. 前 K 个高频元素
文章目录题目解题思路代码(C++)哈希表排序桶排序总结题目题目链接:力扣 347. 前 K 个高频元素给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:1 <= nums.length <= 105k 的取值范围是 [1, 数组中不相原创 2022-04-07 23:10:28 · 625 阅读 · 1 评论 -
【每日一题】力扣451. 根据字符出现频率排序
文章目录题目解题思路代码(C++)哈希表暴力桶排序总结题目题目链接:451. 根据字符出现频率排序给定一个字符串 s ,根据字符出现的 频率 对其进行 降序排序 。一个字符出现的 频率 是它出现在字符串中的次数。返回 已排序的字符串 。如果有多个答案,返回其中任何一个。示例 1:输入: s = “tree”输出: “eert”解释: 'e’出现两次,'r’和’t’都只出现一次。因此’e’必须出现在’r’和’t’之前。此外,"eetr"也是一个有效的答案。示例 2:输入: s原创 2022-04-06 14:46:44 · 2354 阅读 · 1 评论 -
【每日一题】力扣88. 合并两个有序数组
文章目录题目解题思路代码(C++)调用函数双指针总结题目题目链接:88. 合并两个有序数组给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元原创 2022-04-05 14:29:33 · 341 阅读 · 5 评论 -
【每日一题】179. 最大数
文章目录题目解题思路代码(C++)总结题目题目链接:179. 最大数给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例 1:输入:nums = [10,2]输出:“210”示例 2:输入:nums = [3,30,34,5,9]输出:“9534330”提示:1 <= nums.length <= 1000 <= nums[i] <= 10原创 2022-04-04 15:26:32 · 1828 阅读 · 5 评论 -
【每日一题】93. 复原 IP 地址
文章目录题目解题思路代码(C++)回溯总结题目题目链接:93. 复原 IP 地址有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是 无效 IP 地址。给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 I原创 2022-04-03 09:48:41 · 956 阅读 · 5 评论 -
【每日一题】131. 分割回文串
文章目录题目解题思路代码(C++)递归动态规划总结题目题目链接:131. 分割回文串给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。示例 1:输入:s = “aab”输出:[[“a”,“a”,“b”],[“aa”,“b”]]示例 2:输入:s = “a”输出:[[“a”]]提示:1 <= s.length <= 16s 仅由小写英文字母组成解题思路今天估原创 2022-04-02 16:21:30 · 1001 阅读 · 5 评论 -
【每日一题】17. 电话号码的字母组合
文章目录题目解题思路代码(C++)回溯总结题目题目链接:17. 电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = “23”输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]示例 2:输入:digits = “”输出:[]示例 3:输入:digits = “原创 2022-04-01 09:20:04 · 366 阅读 · 3 评论 -
【每日一题】89. 格雷编码
文章目录题目解题思路代码(C++)规律+栈公式其他总结题目题目链接:89. 格雷编码n 位格雷码序列 是一个由 2n 个整数组成的序列,其中:每个整数都在范围 [0, 2n - 1] 内(含 0 和 2n - 1)第一个整数是 0一个整数在序列中出现 不超过一次每对 相邻 整数的二进制表示 恰好一位不同 ,且第一个 和 最后一个 整数的二进制表示 恰好一位不同给你一个整数 n ,返回任一有效的 n 位格雷码序列 。示例 1:输入:n = 2输出:[0,1,3,2]解释:原创 2022-03-31 21:49:12 · 1202 阅读 · 4 评论 -
【每日一题】51. N 皇后
文章目录题目解题思路代码(C++)递归总结题目题目链接:51. N 皇后n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例 1:输入:n = 4输出:[[".Q…","…Q",“Q…”,"…Q."],["…Q.",“Q…”,"…Q",".Q…"]]解释:如上图所原创 2022-03-30 15:11:54 · 269 阅读 · 8 评论 -
【每日一题】77. 组合
文章目录题目解题思路代码(C++)递归字典序总结题目题目链接:77. 组合给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例 1:输入:n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]示例 2:输入:n = 1, k = 1输出:[[1]]提示:1 <= n <= 201 <= k <= n解题思路👉原创 2022-03-29 16:09:05 · 1675 阅读 · 5 评论 -
【每日一题】力扣322. 零钱兑换
文章目录题目解题思路代码(C++)递归优化动态规划总结题目题目链接:力扣322. 零钱兑换给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。示例 1:输入:coins = [1, 2, 5], amount = 11输出:3解释:11 = 5 + 5 + 1示例 2:输入:coins = [2],原创 2022-03-28 15:15:44 · 2211 阅读 · 6 评论 -
【每日一题】力扣230.二叉搜索树中第K小的元素
文章目录题目解题思路代码(C++)中序遍历优化总结题目题目链接:力扣230.二叉搜索树中第K小的元素给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。示例 1:输入:root = [3,1,4,null,2], k = 1输出:1示例 2:输入:root = [5,3,6,2,4,null,null,1], k = 3输出:3提示:树中的节点数为 n 。1 <= k <= n &l原创 2022-03-27 13:01:33 · 1813 阅读 · 7 评论 -
【每日一题】力扣690.员工的重要性
文章目录题目解题思路代码(C++)哈希+递归递归迭代总结题目题目链接:力扣690.员工的重要性给定一个保存员工信息的数据结构,它包含了员工 唯一的 id ,重要度 和 直系下属的 id 。比如,员工 1 是员工 2 的领导,员工 2 是员工 3 的领导。他们相应的重要度为 15 , 10 , 5 。那么员工 1 的数据结构是 [1, 15, [2]] ,员工 2的 数据结构是 [2, 10, [3]] ,员工 3 的数据结构是 [3, 5, []] 。注意虽然员工 3 也是员工 1 的一个下属原创 2022-03-26 20:24:53 · 820 阅读 · 8 评论 -
【每日一题】力扣222 完全二叉树的节点个数
文章目录题目解题思路代码(C++)递归二分查找总结题目题目链接:力扣222.完全二叉树的节点个数给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2^h 个节点。示例 1:输入:root = [1,2,3,4,5,6]输出:6示例 2:输入:root = []输出:0示例原创 2022-03-25 23:35:55 · 947 阅读 · 6 评论 -
【每日一题】力扣211 添加与搜索单词-数据结构设计
文章目录题目解题思路代码(C++)总结题目题目链接:力扣211.添加与搜索单词-数据结构设计请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。实现词典类 WordDictionary :WordDictionary() 初始化词典对象void addWord(word) 将 word 添加到数据结构中,之后可以对它进行匹配bool search(word) 如果数据结构中存在字符串与 word 匹配,则返回 true ;否则,返回 false 。原创 2022-03-24 23:18:07 · 805 阅读 · 2 评论 -
【每日一题】力扣386 字典序排数
文章目录题目解题思路代码(C++)方法一方法二总结题目题目链接:力扣386:字典序排数给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。示例 1:输入:n = 13输出:[1,10,11,12,13,2,3,4,5,6,7,8,9]示例 2:输入:n = 2输出:[1,2]提示:1 <= n <= 5 * 10^4解题思路👉调用函数这种方法主要是调用库函数解决,由原创 2022-03-23 15:14:20 · 1633 阅读 · 3 评论 -
【每日一题】力扣207 课程表
文章目录题目解题思路代码(C++)递归迭代总结题目题目链接:力扣207:课程表你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。请你判断是否可能完成所有课原创 2022-03-22 23:05:53 · 1006 阅读 · 2 评论 -
【每日一题】力扣133 克隆图
文章目录题目解题思路代码(C++)递归迭代总结题目题目链接:133:克隆图给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。class Node { public int val; public List<Node> neighbors;}测试用例格式:简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2原创 2022-03-21 19:00:18 · 1378 阅读 · 2 评论 -
【每日一题】力扣1566 重复至少K次且长度为M的模式
文章目录题目解题思路代码(C++)方法一方法二总结题目题目链接:力扣1566:重复至少K次且长度为M的模式给你一个正整数数组 arr,请你找出一个长度为 m 且在数组中至少重复 k 次的模式。模式 是由一个或多个值组成的子数组(连续的子序列),连续 重复多次但 不重叠 。 模式由其长度和重复次数定义。如果数组中存在至少重复 k 次且长度为 m 的模式,则返回 true ,否则返回 false 。示例 1:输入:arr = [1,2,4,4,4,4], m = 1, k = 3输出:t原创 2022-03-20 11:25:13 · 164 阅读 · 8 评论 -
【每日一题】力扣129 求根节点到叶子节点数字之和
文章目录题目解题思路代码(C++)递归法迭代法总结题目题目链接:力扣129:求根节点到叶子节点数字之和给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。每条从根节点到叶节点的路径都代表一个数字:例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。计算从根节点到叶节点生成的 所有数字之和 。叶节点 是指没有子节点的节点。示例 1:输入:root = [1,2,3]输出:25解释:从根到叶子节点路径 1-&g原创 2022-03-19 09:53:38 · 433 阅读 · 2 评论 -
【每日一题】力扣116 填充每个节点的下一个右侧节点指针
文章目录题目解题思路代码(C++)层次遍历递归迭代总结题目题目链接:力扣116:填充每个节点的下一个右侧节点指针给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 nex原创 2022-03-18 21:22:06 · 320 阅读 · 0 评论 -
【每日一题】力扣114 二叉树展开为链表
文章目录题目解题思路代码(C++)总结题目题目链接:力扣114:二叉树展开为链表给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。示例 1:输入:root = [1,2,5,3,4,null,6]输出:[1,null,2,null,3,null,4,null,5,null,6]示例 2:输入:原创 2022-03-17 14:56:19 · 258 阅读 · 0 评论 -
【每日一题】力扣236 二叉树的最近公共祖先
文章目录题目解题思路代码(C++)法一法二总结题目题目链接:力扣236:二叉树的最近公共祖先给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点x,满足x是p、q的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出:3解释:节点 5 和节点 1 的最近公原创 2022-03-16 11:44:02 · 666 阅读 · 0 评论 -
【每日一题】力扣437 路径总和Ⅲ
文章目录题目解题思路代码双重递归前缀和总结题目题目链接:力扣437:路经总和Ⅲ给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。示例 1:输入:root = [10,5,-3,3,2,null,11,3,-2,null,1], targetSum = 8输出:3解释:和等于 8 的路径有 3 条,如原创 2022-03-15 21:47:41 · 250 阅读 · 0 评论 -
【每日一题】力扣111 二叉树的最小深度
文章目录题目解题思路代码(C++)迭代递归拓展(求最大深度)总结题目题目链接:力扣111:二叉树的最小深度给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例 1:输入:root = [3,9,20,null,null,15,7]输出:2示例 2:输入:root = [2,null,3,null,4,null,5,null,6]输出:5提示:树中节点数的范围在 [0, 105] 内-100原创 2022-03-14 11:55:51 · 1445 阅读 · 2 评论 -
【每日一题】力扣102 二叉树的层序遍历
前言停更几个月了,发现自己的自律能力还是挺差的,所以现在我想到了一个新招:每日一题。很多博主都搞了这一系列,其实挺不错的,可以约束自己。后面多多指教啦!文章目录题目解题思路代码(C++)总结题目题目链接:力扣102:二叉树的层序遍历给你二叉树的根节点 root,返回其节点值的层序遍历 。 (即逐层地,从左到右访问所有节点)。示例 1:输入:root = [3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]示例 2:输入:root =原创 2022-03-13 21:55:12 · 1722 阅读 · 0 评论