- 博客(72)
- 资源 (1)
- 收藏
- 关注
原创 Tensorflow 特征列说明
通过明确每个特征列的作用、适用场景和示例,可以更好地理解如何在 Wide & Deep 模型中有效地使用这些特征列,以提高模型的性能和表达能力。
2024-08-22 14:55:56
462
原创 leetcode热题系列19
68. 文本左右对齐119. 杨辉三角 II补充题3. 求区间最小数乘区间和的最大值1293. 网格中的最短路径57. 插入区间29. 两数相除722. 删除注释30. 串联所有单词的子串剑指 Offer 25. 合并两个排序的链表1109. 航班预订统计剑指 Offer 41. 数据流中的中位数1438. 绝对差不超过限制的最长连续子数组补充题17. 两个有序数组第k小的数补充题13. 中文数字转阿拉伯数字214. 最短回文串716. 最大栈381. O(1) 时间插入、删
2024-08-21 08:18:29
364
原创 leetcode热题系列18
889. 根据前序和后序遍历构造二叉树173. 二叉搜索树迭代器767. 重构字符串补充题24. 双栈排序剑指 Offer 59 - I. 滑动窗口的最大值836. 矩形重叠875. 爱吃香蕉的珂珂772. 基本计算器 III127. 单词接龙1206. 设计跳表1233. 删除子文件夹面试题 02.02. 返回倒数第 k 个节点1658. 将 x 减到 0 的最小操作数905. 按奇偶排序数组补充题20. 立方根1280. 学生们参加各科测试的次数
2024-08-21 08:16:58
237
原创 leetcode热题系列16
456. 132模式剑指 Offer 12. 矩阵中的路径剑指 Offer 14- I. 剪绳子523. 连续的子数组和99. 恢复二叉搜索树974. 和可被 K 整除的子数组340. 至多包含 K 个不同字符的最长子串73. 矩阵置零补充题8. 计算数组的小和334. 递增的三元子序列面试题 16.25. LRU缓存223. 矩形面积486. 预测赢家面试题 17.14. 最小K个数剑指 Offer 43. 1~n整数中1出现的次数658. 找到 K 个最接近的元素912.
2024-08-14 09:58:37
317
原创 leetcode热题系列17
剑指 Offer 50. 第一个只出现一次的字符946. 验证栈序列692. 前K个高频单词315. 计算右侧小于当前元素的个数166. 分数到小数238. 除自身以外数组的乘积306. 累加数133. 克隆图118. 杨辉三角986. 区间列表的交集233. 数字 1 的个数907. 子数组的最小值之和
2024-08-14 09:57:22
406
原创 leetcode热题系列15
剑指 Offer 50. 第一个只出现一次的字符946. 验证栈序列692. 前K个高频单词315. 计算右侧小于当前元素的个数166. 分数到小数238. 除自身以外数组的乘积306. 累加数133. 克隆图118. 杨辉三角986. 区间列表的交集233. 数字 1 的个数907. 子数组的最小值之和
2024-08-14 09:55:55
393
原创 leetcode热题系列14
540. 有序数组中的单一元素301. 删除无效的括号437. 路径总和 III204. 计数质数补充题21. 字符串相减567. 字符串的排列剑指 Offer 46. 把数字翻译成字符串面试题 08.12. 八皇后171. Excel表列序号525. 连续数组80. 删除排序数组中的重复项 II149. 直线上最多的点数994. 腐烂的橘子
2024-08-14 09:54:22
165
原创 leetcode热题系列13
要求是连续的子数组,所以自然就想到了双指针法,也就是寻找一个连续的区间。但是细思之后没有理清左右边界移动的逻辑,遂弃。暴力解反正先暴力解一下吧:前缀和数组:构建数组sum[i]表示原数组前 i 个元素之和,比如sum[2] = A[0] + A[1]。
2024-08-11 16:45:20
708
原创 leetcode热题系列12
设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构。insert(val):当元素 val 不存在时,向集合中插入该项。remove(val):元素 val 存在时,从集合中移除该项。getRandom:随机返回现有集合中的一项。每个元素应该有相同的概率被返回。解题思路:使用列表存储元素值,使用字典存储元素值及其在列表中的索引。重点关注删除操作:先将要删除的val对应的索引值赋给列表中最后一个元素,接下来对列表中两个元素进行交换,最后在列表和字典中分别移除val即可。
2024-08-04 11:30:32
722
原创 leetcode热题系列章节11
给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。请注意,它是排序后的第k小元素,而不是第k个元素。示例:matrix = [],k = 8,返回 13。说明:你可以假设 k 的值永远是有效的, 1 ≤ k ≤ n2。
2024-07-28 16:01:20
154
原创 热题系列9
给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。数据范围:0≤n≤50000,数组中元素的值0≤val≤10000要求:空间复杂度O(1),时间复杂度O(n)输入描述:保证数组输入非空,且保证有解示例1输入:[1,2,3,2,2,2,5,4,2]返回值:2示例2输入:[3,3,3,3,2,2,2]
2024-07-13 12:50:52
870
原创 热题系列8
2.分析这一题刚刚开始是很非常懵,主要是没有理解到"给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度)" 这个条件的真谛。这个条件就是暗示我们可以使用这个数组里面的值帮我们来记录一些信息。1.首先你的约束条件是 “你可以不用到任何额外空间并在O(n)时间复杂度内” ,所以不能两次遍历,只能遍历一次且需要用到数组里面的位置来帮助我们记录信息。2.那么我们就考虑循环每个值,利用这个(值-1)代表的索引值来记录是否已经被遍历到。
2024-07-07 19:43:11
556
原创 热题系列章节7
def reverse(self, head): # 链表反转pre = headwhile cur:pre = curcur = tmpreturn preh = ListNode((l1.val + l2.val) % 10) # 额外记下头结点,方便后续反转链表p = helif l1:elif l2:elif flag:flag = 0p = node。
2024-06-30 19:58:18
760
原创 热题系列章节6
序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。示例:示: 这与 LeetCode 目前使用的方式一致,详情请参阅 LeetCode 序列化二叉树的格式。
2024-06-23 15:24:55
789
原创 热题系列章节5
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2题目要求返回出现次数大于⌊ n/2 ⌋ 的元素,这里需要向下取整,并使用Counter()统计数组中元素及其出现的次数,最后遍历统计字典中元素的值,找到值大于⌊ n/2 ⌋ 的键返回即可。
2024-06-10 12:54:04
926
原创 热题系列章节4
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。
2024-06-09 08:15:59
726
原创 热题系列章节3
比较两个版本号 version1 和 version2。如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。你可以假设版本字符串非空,并且只包含数字和 . 字符。. 字符不代表小数点,而是用于分隔数字序列。例如,2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个小版本。你可以假设版本号的每一级的默认修订版号为 0。例如,版本号 3.4 的第一级(大版本)和第二级(小版本)修订号分别为 3 和 4。
2024-06-01 22:36:18
668
原创 热题系列章节1
遍历到i =3 nums[i]=9时结束,,9 与5 交换的排列必然比当前排列大,所以前面数字可以不考虑,而根据之前遍历数组 第i个之后的部分必然是按降序排列,找到后半部分最小,且比nums[i]大的元素,与nums[i]交换,再将后半部分设置为最小排列即可。例如,arr = [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1]。输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]
2024-05-25 14:06:01
925
原创 leetcode 栈和队列1
你只能使用标准的栈操作 – 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。假设所有操作都是有效的 (例如,一个空的队列不会调用 pop 或者 peek 操作)。// 返回 false。push(x) – 将一个元素放入队列的尾部。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。pop() – 从队列首部移除元素。
2024-03-21 20:02:31
270
原创 leetcode-打家劫舍专题系列(动态规划)
成环之后还是难了一些的, 不少题解没有把“考虑房间”和“偷房间”说清楚。这就导致大家会有这样的困惑:情况三怎么就包含了情况一了呢?本文图中最后一间房不能偷啊,偷了一定不是最优结果。所以我在本文重点强调了情况一二三是“考虑”的范围,而具体房间偷与不偷交给递推公式去抉择。这样大家就不难理解情况二和情况三包含了情况一了。
2024-03-15 22:36:29
1100
原创 无重复字符的最长子串、最长回文子串
给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
2024-03-12 22:49:34
357
原创 leetcode 动态规划(单词拆分)
139.单词拆分力扣题目链接(opens new window)给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输出: true解释: 返回 true 因为 “leetcode” 可以被拆分成 “leet code”。
2024-01-13 22:01:45
1194
原创 leetcode 动态规划(爬楼梯、零钱兑换、完全平方数)
卡码网:57. 爬楼梯(opens new window)假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬至多m (1 <= m < n)个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。输入描述:输入共一行,包含两个正整数,分别表示n, m输出描述:输出一个整数,表示爬到楼顶的方法数。输入示例:3 2输出示例:3提示:当 m = 2,n = 3 时,n = 3 这表示一共有三个台阶,m = 2 代表你每次可以爬一个台阶或者两个台阶。
2024-01-12 20:12:21
1242
原创 leetcode动态规划(零钱兑换II、组合总和 Ⅳ)
如果把遍历nums(物品)放在外循环,遍历target的作为内循环的话,举一个例子:计算dp[4]的时候,结果集只有 {1,3} 这样的集合,不会有{3,1}这样的集合,因为nums遍历放在外层,3只能出现在1后面!所有可能的组合为: (1, 1, 1, 1) (1, 1, 2) (1, 2, 1) (1, 3) (2, 1, 1) (2, 2) (3, 1)因为递推公式dp[i] += dp[i - nums[j]]的缘故,dp[0]要初始化为1,这样递归其他dp[i]的时候才会有数值基础。
2024-01-11 22:31:39
1114
原创 leetcode 动态规划(最后一块石头的重量II、目标和、一和零)
本题其实和416. 分割等和子集 (opens new window)几乎是一样的,只是最后对dp[target]的处理方式不同。分割等和子集 (opens new window)相当于是求背包是否正好装满,而本题是求背包最多能装多少。for stone in stones: # 遍历物品for j in range(target, stone - 1, -1): # 遍历背包(简化版)二维DP版# 创建二维dp数组,行数为石头的数量加1,列数为target加1。
2024-01-10 21:20:34
1013
原创 动态规划(整数拆分、不同的二叉搜索树)
那么从1遍历j,比较(i - j) * j和dp[i - j] * j 取最大的。从递归公式上来讲,dp[以j为头结点左子树节点数量] * dp[以j为头结点右子树节点数量] 中以j为头结点左子树节点数量为0,也需要dp[以j为头结点左子树节点数量] = 1, 否则乘法的结果就都变成0了。j的结束条件是 j < i - 1 ,其实 j < i 也是可以的,不过可以节省一步,例如让j = i - 1,的话,其实在 j = 1的时候,这一步就已经拆出来了,重复计算,所以 j < i - 1。
2024-01-08 20:52:43
757
原创 动态规划(不同路径1,不同路径2,整数拆分)
力扣题目链接(opens new window)一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 2, n = 3输出:3解释: 从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向右 -> 向下向右 -> 向下 -> 向右。
2024-01-06 16:16:30
955
原创 leetcode 动态规划(斐波那契数列、 爬楼梯、使用最小花费爬楼梯)
斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1 给你n ,请计算 F(n)。
2024-01-05 09:25:57
528
原创 leetcode贪心(单调递增的数字、监控二叉树)
给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。(当且仅当每个相邻位数上的数字 x 和 y 满足 x
2024-01-04 08:20:08
503
原创 leetcode贪心(无重叠区间、划分字母区间、合并区间)
给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意: 可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。示例 2:输入: [ [1,2], [1,2], [1,2] ]输出: 2解释: 你需要移除两个 [1,2] 来使剩下的区间没有重叠。
2024-01-03 09:57:33
475
原创 leetcode 贪心(柃檬水找零、根据身高重建队列、引爆气球)
在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false。示例 1:输入:[5,5,5,10,20]输出:true解释:前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。
2024-01-02 08:15:16
764
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人