- 博客(37)
- 问答 (1)
- 收藏
- 关注
原创 【每日一题】力扣 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
420
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
1120
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
613
1
原创 【每日一题】力扣451. 根据字符出现频率排序
文章目录题目解题思路代码(C++)哈希表暴力桶排序总结题目题目链接:451. 根据字符出现频率排序给定一个字符串 s ,根据字符出现的 频率 对其进行 降序排序 。一个字符出现的 频率 是它出现在字符串中的次数。返回 已排序的字符串 。如果有多个答案,返回其中任何一个。示例 1:输入: s = “tree”输出: “eert”解释: 'e’出现两次,'r’和’t’都只出现一次。因此’e’必须出现在’r’和’t’之前。此外,"eetr"也是一个有效的答案。示例 2:输入: s
2022-04-06 14:46:44
2334
1
原创 【每日一题】力扣88. 合并两个有序数组
文章目录题目解题思路代码(C++)调用函数双指针总结题目题目链接:88. 合并两个有序数组给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元
2022-04-05 14:29:33
330
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
1824
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
942
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
967
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
364
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
1193
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
263
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
1670
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
2205
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
1802
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
810
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
938
6
原创 【每日一题】力扣211 添加与搜索单词-数据结构设计
文章目录题目解题思路代码(C++)总结题目题目链接:力扣211.添加与搜索单词-数据结构设计请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。实现词典类 WordDictionary :WordDictionary() 初始化词典对象void addWord(word) 将 word 添加到数据结构中,之后可以对它进行匹配bool search(word) 如果数据结构中存在字符串与 word 匹配,则返回 true ;否则,返回 false 。
2022-03-24 23:18:07
794
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
1609
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
994
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
1367
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
160
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
417
2
原创 【每日一题】力扣116 填充每个节点的下一个右侧节点指针
文章目录题目解题思路代码(C++)层次遍历递归迭代总结题目题目链接:力扣116:填充每个节点的下一个右侧节点指针给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 nex
2022-03-18 21:22:06
310
原创 【每日一题】力扣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
253
原创 【每日一题】力扣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
654
原创 【每日一题】力扣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
240
原创 【每日一题】力扣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
1417
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
1712
原创 【学习笔记】JS之事件(上)
前言本篇文章是我的读书笔记,这里我直接从事件开始的原因是我之前没有写博客,最近一段时间才开始。之前的JS笔记也都有写,如果有人想看,欢迎留言/私信,我会把之前的整理出来。
2021-12-22 20:39:26
2559
41
原创 滑动窗口例题讲解
文章目录题目解题思路代码(C++)总结题目题目链接:剑指Offer 57-Ⅱ.和为s的连续正数序列输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]限制:1 <= target <=
2021-12-14 16:36:44
676
35
原创 【leetcode】力扣200.岛屿数量
文章目录题目解题思路代码总结题目题目链接:https://leetcode-cn.com/problems/number-of-islands给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [[“1”,“1”,“1”,“1”,“0”],[“1”,“1”,“0”,“1”,“0”],[“1”,“1
2021-12-12 18:44:31
289
43
原创 经典回溯题讲解
目录题目解题思路代码(c++)总结本篇博客主要讲解一下回溯算法的典型例题。为什么我没有选力扣里的组合总和Ⅰ、Ⅲ或Ⅳ呢?因为除了Ⅳ其他三题都是回溯算法,三题相差不大,Ⅳ是一道动态规划的题我们后面再说。题目题目链接:力扣40:组合总和Ⅱ给定一个数组 candidates和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。注意:解集不能包含重复的组合。示例 1:输入: candid
2021-12-09 20:58:19
474
42
原创 leetcode98【验证二叉搜索树】
目录题目解题思路思路一(纯中序遍历):思路二:代码思路一代码:思路二代码:总结题目题目链接:力扣98:验证二叉搜索树给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:root = [2,1,3]输出:true示例 2:输入:root = [5,1,4,null,null,
2021-12-07 12:47:14
301
27
原创 杭电2072:单词数
本文参考:杭电-2072 和 C++中set用法详解题目统计一篇文章里不同的单词总数要求输入:有多组数据,每组一行,每行是一篇小文章。文章由小写字母和空格组成,没有标点,遇到#时结束输入输出:每组只输出一个整数,单独成行,整数代表不同单词的总数样例样例输入:you are my friend #样例输出:4题目看完了会不会发现很简单,但是如果不用容器还会简单吗?肯定没有用容器简单呀!但我还是尝试了,大家要和我一样每一题都认真的思考,然后大胆的去尝试,实在想不出来再从网上找.
2021-09-19 19:08:32
423
原创 杭电2032和2040:杨辉三角和亲和数问题
今天讲解杭电的2032和2040题,这两题的确是水题,但我是一个小白,小白不就是要从简单开始嘛!好了,话不多说,进入正题2032题这一题是杨辉三角,看到杨辉三角第一反应一定是二维数组解决嘛!虽然我的第一反应也是二维数组,但我却想尝试不用数组解决,于是便有了下面的代码:#include<iostream>using namespace std;int main(){ long long n,i,j,k,x,y,z; while(cin >> n) .
2021-09-12 20:28:33
150
原创 求任意整数的精确阶乘值
求任意整数的精确阶乘值在看其他人的代码时发现讲的不细,我看了好久才明白(没错,我是个菜鸟),所以我就来讲细一点题目有两个注意点:任意整数和精确阶乘值。对于任意整数,我们第一反应应该是long long型,但阶乘值太大使用long long 型只能求很小的整数阶乘值#include <iostream>using namespace std;int main(){ long long a, n; while (cin >> n) {
2021-09-11 15:53:07
1002
14
空空如也
为什么这两句代码是不一样的?
2021-09-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人