- 博客(43)
- 资源 (1)
- 收藏
- 关注
原创 39. 组合总和
给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。2 和 3 可以形成一组候选,2 + 2 + 3 = 7。输入:candidates = [2,3,6,7], target = 7。输入: candidates = [2,3,5], target = 8。输出: [[2,2,2,2],[2,3,3],[3,5]]输出:[[2,2,3],[7]]
2025-02-04 18:50:04
105
原创 47. 全排列 II
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。输入:nums = [1,1,2]输入:nums = [1,2,3]
2025-02-04 18:49:44
185
原创 40. 组合总和 II
给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。输入: candidates = [10,1,2,7,6,1,5], target = 8,输入: candidates = [2,5,2,1,2], target = 5,candidates 中的每个数字在每个组合中只能使用 一次。注意:解集不能包含重复的组合。
2025-02-04 18:49:18
179
原创 90. 子集 II
给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的。解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]输入:nums = [1,2,2]输入:nums = [0]输出:[[],[0]]
2025-02-04 18:48:59
146
原创 46. 全排列
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列。你可以 按任意顺序 返回答案。输入:nums = [1,2,3]输出:[[0,1],[1,0]]nums 中的所有整数 互不相同。输入:nums = [0,1]输入:nums = [1]
2025-02-04 18:48:41
123
原创 77. 组合
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。输入:n = 4, k = 2。输入:n = 1, k = 1。
2025-02-04 18:48:16
107
原创 78. 子集
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]给你一个整数数组 nums ,数组中的元素 互不相同。返回该数组所有可能的。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。输入:nums = [1,2,3]nums 中的所有元素 互不相同。输入:nums = [0]输出:[[],[0]]
2025-02-04 18:47:50
200
原创 回溯算法:排列/组合/子集问题
由于子集问题和组合问题本质上是一样的,无非就是 base case 有一些区别,所以把这两个问题放在一起看。来回顾一下排列/组合/子集问题的三种形式在代码上的区别。
2025-02-04 18:47:05
178
原创 二叉树的递归/层序遍历
回顾写法二,我们每向下遍历一层,就给 depth 加 1,可以理解为每条树枝的权重是 1,二叉树中每个节点的深度,其实就是从根节点到这个节点的路径权重和,且同一层的所有节点,路径权重和都是相同的。知道节点的层数是个常见的需求,比方说让你收集每一层的节点,或者计算二叉树的最小深度等等。这种写法就可以记录下来每个节点所在的层数,可以解决诸如二叉树最小深度这样的问题,是我们最常用的层序遍历写法。那么假设,如果每条树枝的权重和可以是任意值,现在让你层序遍历整棵树,打印每个节点的路径权重和,你会怎么做?
2025-02-04 18:46:27
384
原创 给你一棵二叉树,请你用分解问题的思路写一个 count 函数,计算这棵二叉树共有多少个节点
【代码】给你一棵二叉树,请你用分解问题的思路写一个 count 函数,计算这棵二叉树共有多少个节点。
2025-01-11 17:18:29
70
原创 144. 二叉树的前序遍历
输入:root = [1,2,3,4,5,null,8,null,null,6,7,9]给你二叉树的根节点 root ,返回它节点值的 前序 遍历。进阶:递归算法很简单,你可以通过迭代算法完成吗?输入:root = [1,null,2,3]输出:[1,2,4,5,6,7,3,8,9]树中节点数目在范围 [0, 100] 内。输入:root = [1]输入:root = []输出:[1,2,3]
2025-01-11 17:16:55
125
原创 104. 二叉树的最大深度
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。输入:root = [3,9,20,null,null,15,7]给定一个二叉树 root ,返回其最大深度。树中节点的数量在 [0, 104] 区间内。输入:root = [1,null,2]
2025-01-11 17:15:18
223
原创 72. 编辑距离
给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数。输入:word1 = “intention”, word2 = “execution”inention -> enention (将 ‘i’ 替换为 ‘e’)enention -> exention (将 ‘n’ 替换为 ‘x’)exention -> exection (将 ‘n’ 替换为 ‘c’)输入:word1 = “horse”, word2 = “ros”
2025-01-11 16:53:20
207
原创 72. 编辑距离
给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数。输入:word1 = “intention”, word2 = “execution”inention -> enention (将 ‘i’ 替换为 ‘e’)enention -> exention (将 ‘n’ 替换为 ‘x’)exention -> exection (将 ‘n’ 替换为 ‘c’)输入:word1 = “horse”, word2 = “ros”
2025-01-11 11:35:29
189
原创 322. 零钱兑换
计算并返回可以凑成总金额所需的 最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。输入:coins = [1, 2, 5], amount = 11。输入:coins = [2], amount = 3。输入:coins = [1], amount = 0。你可以认为每种硬币的数量是无限的。解释:11 = 5 + 5 + 1。
2025-01-11 11:22:47
134
原创 34. 在排序数组中查找元素的第一个和最后一个位置
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。输入:nums = [5,7,7,8,8,10], target = 8。输入:nums = [5,7,7,8,8,10], target = 6。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。如果数组中不存在目标值 target,返回 [-1, -1]。输入:nums = [], target = 0。输出:[-1,-1]输出:[-1,-1]
2025-01-11 10:58:38
226
原创 704. 二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。输入: nums = [-1,0,3,5,9,12], target = 9。输入: nums = [-1,0,3,5,9,12], target = 2。nums 的每个元素都将在 [-9999, 9999]之间。解释: 9 出现在 nums 中并且下标为 4。解释: 2 不存在 nums 中因此返回 -1。
2025-01-11 10:57:17
157
原创 3. 无重复字符的最长子串
请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。给定一个字符串 s ,请你找出其中不含有重复字符的 最长。输入: s = “abcabcbb”s 由英文字母、数字、符号和空格组成。输入: s = “pwwkew”输入: s = “bbbbb”
2025-01-11 10:55:32
157
原创 438. 找到字符串中所有字母异位词
起始索引等于 0 的子串是 “cba”, 它是 “abc” 的异位词。起始索引等于 6 的子串是 “bac”, 它是 “abc” 的异位词。起始索引等于 0 的子串是 “ab”, 它是 “ab” 的异位词。起始索引等于 1 的子串是 “ba”, 它是 “ab” 的异位词。起始索引等于 2 的子串是 “ab”, 它是 “ab” 的异位词。输入: s = “cbaebabacd”, p = “abc”的子串,返回这些子串的起始索引。输入: s = “abab”, p = “ab”输出: [0,1,2]
2025-01-11 10:54:29
241
原创 567. 字符串的排列
给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的。输入:s1 = “ab” s2 = “eidbaooo”如果是,返回 true;否则,返回 false。输入:s1= “ab” s2 = “eidboaoo”解释:s2 包含 s1 的排列之一 (“ba”).换句话说,s1 的排列之一是 s2 的 子串。s1 和 s2 仅包含小写字母。
2025-01-11 10:53:29
338
原创 76. 最小覆盖子串
返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “”。解释:最小覆盖子串 “BANC” 包含来自字符串 t 的 ‘A’、‘B’ 和 ‘C’。对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。输入:s = “ADOBECODEBANC”, t = “ABC”解释: t 中两个字符 ‘a’ 均应包含在 s 的子串中,输入: s = “a”, t = “aa”输入:s = “a”, t = “a”s 和 t 由英文字母组成。
2025-01-11 10:52:22
175
原创 5. 最长回文子串
解释:“aba” 同样是符合题意的答案。给你一个字符串 s,找到 s 中最长的。输入:s = “babad”输入:s = “cbbd”s 仅由数字和英文字母组成。
2025-01-11 10:49:36
219
原创 344. 反转字符串
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]输入:s = [“h”,“e”,“l”,“l”,“o”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]输出:[“o”,“l”,“l”,“e”,“h”]s[i] 都是 ASCII 码表中的可打印字符。
2025-01-11 10:49:19
134
原创 167. 两数之和 II - 输入有序数组
如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length。以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。因此 index1 = 1, index2 = 2。输入:numbers = [2,7,11,15], target = 9。输入:numbers = [-1,0], target = -1。
2025-01-05 17:48:37
124
原创 283. 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。输入: nums = [0,1,0,3,12]进阶:你能尽量减少完成的操作次数吗?输出: [1,3,12,0,0]输入: nums = [0]
2025-01-05 17:45:41
207
原创 27. 移除元素
更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。解释:你的函数应该返回 k = 5,并且 nums 中的前五个元素为 0,0,1,3,4。解释:你的函数函数应该返回 k = 2, 并且 nums 中的前两个元素均为 2。// 排序 nums 的前 k 个元素。输入:nums = [0,1,2,2,3,0,4,2], val = 2。输入:nums = [3,2,2,3], val = 3。输出:5, nums = [0,1,4,0,3,输出:2, nums = [2,2,
2025-01-05 17:44:31
156
原创 83. 删除排序链表中的重复元素
给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次。返回 已排序的链表。输入:head = [1,1,2,3,3]链表中节点数目在范围 [0, 300] 内。输入:head = [1,1,2]题目数据保证链表已经按升序 排列。输出:[1,2,3]
2025-01-05 17:42:45
157
原创 26. 删除有序数组中的重复项
更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2。输入:nums = [0,0,1,1,1,2,2,3,3,4]输出:5, nums = [0,1,2,3,4]输出:2, nums = [1,2,_]输入:nums = [1,1,2]
2025-01-05 17:40:42
235
原创 160. 相交链表
输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,6,1,8,4,5], skipA = 2, skipB = 3。输入:intersectVal = 2, listA = [1,9,1,2,4], listB = [3,2,4], skipA = 3, skipB = 1。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,6,1,8,4,5]。解释:相交节点的值为 2 (注意,如果两个链表相交则不能为 0)。
2025-01-05 17:33:50
705
原创 142. 环形链表 II
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。给定一个链表的头节点 head ,返回链表开始入环的第一个节点。输入:head = [3,2,0,-4], pos = 1。输入:head = [1,2], pos = 0。解释:链表中有一个环,其尾部连接到第二个节点。解释:链表中有一个环,其尾部连接到第一个节点。输出:返回索引为 1 的链表节点。解释:链表中没有环。
2025-01-05 17:29:42
181
原创 判断链表是否包含环
如果 fast 最终能正常走到链表末尾,说明链表中没有环;如果 fast 走着走着竟然和 slow 相遇了,那肯定是 fast 在链表中转圈了,说明链表中含有环。每当慢指针 slow 前进一步,快指针 fast 就前进两步。
2025-01-05 17:27:44
161
原创 876. 链表的中间结点
解释:该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。给你单链表的头结点 head ,请你找出并返回链表的中间结点。输入:head = [1,2,3,4,5,6]如果有两个中间结点,则返回第二个中间结点。输入:head = [1,2,3,4,5]解释:链表只有一个中间结点,值为 3。链表的结点数范围是 [1, 100]输出:[3,4,5]输出:[4,5,6]
2025-01-05 17:25:00
120
原创 19. 删除链表的倒数第 N 个结点
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。输入:head = [1,2,3,4,5], n = 2。输入:head = [1,2], n = 1。输入:head = [1], n = 1。输出:[1,2,3,5]链表中结点的数目为 sz。
2025-01-05 17:20:55
188
原创 02. 返回倒数第 k 个节点
实现一种算法,找出单向链表中倒数第 k 个节点。输入: 1->2->3->4->5 和 k = 2。注意:本题相对原题稍作改动。给定的 k 保证是有效的。
2025-01-05 17:19:00
120
原创 23. 合并 K 个升序链表
输入:lists = [[1,4,5],[1,3,4],[2,6]]请你将所有链表合并到一个升序链表中,返回合并后的链表。lists[i].length 的总和不超过 10^4。给你一个链表数组,每个链表都已经按升序排列。输出:[1,1,2,3,4,4,5,6]将它们合并到一个有序链表中得到。lists[i] 按 升序 排列。输入:lists = [[]]输入:lists = []
2025-01-05 17:08:20
115
原创 86. 分隔链表
给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。输入:head = [1,4,3,2,5,2], x = 3。你应当 保留 两个分区中每个节点的初始相对位置。输入:head = [2,1], x = 2。链表中节点的数目在范围 [0, 200] 内。输出:[1,2,2,4,3,5]
2025-01-05 17:06:19
170
原创 21. 合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:l1 = [1,2,4], l2 = [1,3,4]输入:l1 = [], l2 = [0]两个链表的节点数目范围是 [0, 50]输入:l1 = [], l2 = []l1 和 l2 均按 非递减顺序 排列。输出:[1,1,2,3,4,4]
2025-01-05 16:36:46
174
原创 基于rasa的多轮对话实例---concertbot
实例bot仅仅包含story数据。项目地址https://github.com/RasaHQ/rasa/tree/main/examples/concertbot这个例子包含什么这个示例包含一些训练数据和在本地机器上构建一个助手所需的主要文件。concertbot由以下文件组成:data/stories.md 包含核心模型的训练storiesactions/actions.py 包含一些自定义的actionsconfig.yml 包含模型的配置domain.yml 包含助手的domaine
2021-04-25 15:46:49
602
原创 bert单机多GPU训练
多GPU训练bert概述做nlp的肯定都听说过bert了,它属于迁移学习,官方提供了通用语料bert预训练结果,通过微调,可以提高下游任务的准确率。但是bert使用的维基百科这类的通用语料,对特定领域的文本特征学的不是很好。例如我所在的医疗领域,bert并不能很好区分医学特征,此时就需要我们对自己的语料进行预训练。bert官方也提到利用fine-tune任务的语料进行预训练,能提高fine-tune任务的准确率。训练bert官方提供的bert是使用tpu集群训练的代码,他可以兼容单核GPU、多核CP
2021-04-08 22:22:18
956
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人