- 博客(68)
- 收藏
- 关注
原创 代码随想录算法训练营第五十一天|200. 岛屿数量|695.岛屿的最大面积
题目描述:给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可以假设矩阵外均被水包围。输入描述:第一行包含两个整数 N, M,表示矩阵的行数和列数。后续 N 行,每行包含 M 个数字,数字为 1 或者 0。输出描述:输出一个整数,表示岛屿的数量。如果不存在岛屿,则输出 0。DFS#定位从0到len-1#矩阵中是文本格式returncount=0count+=1BFScount=0。
2025-04-03 18:02:22
365
原创 代码随想录算法训练营第四十八天|739. 每日温度|496.下一个更大元素 I|503.下一个更大元素II
请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。
2025-04-01 19:57:27
326
原创 自用大模型学习笔记--transformer(不定期更新,欢迎挑错)
产生原因:每个词在句子中的重要程度不同,所以对每个词要赋予不一样的权重。自注意力机制是注意力机制的一种,目的是让机器注意到整个输入中不同部分之间的相关性。其减少了对外部信息的依赖,更擅长捕捉数据或特征内部相关性。QKV是同一个东西,或来源于同一个X,从而更关注X的关键信息。1、将input embedding成向量。2、分别和权重矩阵相乘得到Query向量(查询),Key向量(键)和Value向量(值)。Query向量(查询):查询的范围,主观意识的特征向量。
2025-03-30 10:42:06
941
原创 代码随想录算法训练营第四十六天|647.回文子串;516.最长回文子序列
子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。,找出其中最长的回文子序列,并返回该序列的长度。是字符串中的由连续字符组成的一个序列。是正着读和倒过来读一样的字符串。,请你统计并返回这个字符串中。
2025-03-29 08:01:20
107
原创 代码随想录算法训练营第四十五天|115.不同的子序列|583. 两个字符串的删除操作|72. 编辑距离
给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE" 是 "ABCDE" 的一个子序列,而 "AEC" 不是)题目数据保证答案符合 32 位带符号整数范围return 1if not s:return 0if not t:return 1dp[0][i]=0dp[j][0]=1else:注意dp[0][0]和s[0]和t[0]含义不同。
2025-03-28 10:52:50
239
原创 代码随想录算法训练营第四十四天|1143.最长公共子序列|1035.不相交的线|53. 最大子序和|392.判断子序列
给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。若这两个字符串没有公共子序列,则返回 0。
2025-03-27 10:24:15
247
原创 代码随想录算法训练营第四十三天|300.最长递增子序列|674. 最长连续递增序列|718. 最长重复子数组(连续子序列)
给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4。示例 2:输入:nums = [0,1,0,3,2,3]输出:4示例 3:输入:nums = [7,7,7,7,7,7,7]
2025-03-26 11:13:34
271
原创 代码随想录算法训练营第四十二天|188.买卖股票的最佳时机IV|309.最佳买卖股票时机含冷冻期|714.买卖股票的最佳时机含手续费
给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
2025-03-25 09:42:51
354
原创 代码随想录算法训练营第四十一天|121. 买卖股票的最佳时机|122.买卖股票的最佳时机II|123.买卖股票的最佳时机III
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0。result=0return 0dp[0][1]=0#注意range不含初始化情况。
2025-03-24 10:37:33
263
原创 代码随想录算法训练营第三十八天|198.打家劫舍|213.打家劫舍II|337.打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,。给定一个代表每个房屋存放金额的非负整数数组,计算你,一夜之内能够偷窃到的最高金额。
2025-03-22 09:58:16
149
原创 代码随想录算法训练营第三十七天|322. 零钱兑换;279.完全平方数;139.单词拆分
给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。你可以认为每种硬币的数量是无限的。
2025-03-21 10:03:55
228
原创 代码随想录算法训练营第三十六天|518.零钱兑换II;377. 组合总和 Ⅳ
给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。#amount考虑等于0的情况,coins只考虑存在的coin=0:dp[0][i]=0else:dp[0][i]=1dp[i][0]=1#第一行和第一列已经初始化,可以不计算else:dp[0]=1。
2025-03-20 14:39:44
340
原创 代码随想录算法训练营第三十五天|1049.最后一块石头的重量II;494.目标和;474.一和零
有一堆石头,每块石头的重量都是正整数。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x!= y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头最小的可能重量。如果没有石头剩下,就返回 0。#转化为求是否可以均分成两份的问题。
2025-03-19 11:38:24
276
原创 代码随想录算法训练营第三十四天|416. 分割等和子集
给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。#在Python中,除法运算符 / 默认输出 float 类型。
2025-03-18 15:01:17
196
原创 代码随想录算法训练营第三十三天|62.不同路径;63. 不同路径 II
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?dq[0][i]=1dq[j][0]=1#边界的所有情况#0的情况在前面已经取过。
2025-03-17 09:56:50
332
原创 代码随想录算法训练营第三十二天|509.斐波那契数;70. 爬楼梯;746. 使用最小花费爬楼梯
数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?需要 n 阶你才能到达楼顶。注意:给定 n 是一个正整数。
2025-03-15 10:47:48
198
原创 代码随想录算法训练营第三十一天|56.合并区间;738.单调递增的数字
给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: intervals = [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: intervals = [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。
2025-03-14 09:07:50
399
原创 代码随想录算法训练营第三十天|452. 用最少数量的箭引爆气球;435. 无重叠区间;763.划分字母区间
在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。弓箭一旦被射出之后,可以无限地前进。
2025-03-13 09:33:18
299
原创 代码随想录算法训练营第二十九天|134.加油站;135.分发糖果;860.柠檬水找零;406.根据身高重建队列
在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。
2025-03-12 11:23:53
363
原创 代码随想录算法训练营第二十八天|122.买卖股票的最佳时机 II|55.跳跃游戏|45.跳跃游戏 II|1005.K次取反后最大化的数组和
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。result=0。
2025-03-11 09:58:48
359
原创 代码随想录算法训练营第二十七天| 455.分发饼干;376. 摆动序列 ;53. 最大子序和
贪心的本质是选择每一阶段的局部最优,从而达到全局最优。
2025-03-10 10:17:13
326
原创 代码随想录算法训练营第二十五天| 491.递增子序列 ;46.全排列;47.全排列 II
给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。
2025-03-08 12:54:44
283
原创 代码随想录算法训练营第二十四天| 93.复原IP地址;78.子集;90.子集II
给定一个只包含数字的字符串,复原它并返回所有可能的 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 地址。result=[]#current是一个字符串#列表用append字符串直接加return。
2025-03-07 09:54:52
381
原创 代码随想录算法训练营第二十三天| 39. 组合总和;40.组合总和II ;131.分割回文串
给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。
2025-03-06 11:10:43
120
原创 代码随想录算法训练营第二十二天| 第77题. 组合|216 组合总和|17.电话号码的字母组合
class Solution: def combine(self, n: int, k: int) -> List[List[int]]: result=[] self.backward(n,k,1,result,[]) return result def backward(self,n,k,startindex,result,lis): if len(lis)==k: result.append(lis[:])
2025-03-05 18:53:16
914
原创 代码随想录算法训练营第二十一天| 669. 修剪二叉搜索树|108.将有序数组转换为二叉搜索树|538.把二叉搜索树转换为累加树
returnself.pre=0。
2025-03-04 09:42:49
219
原创 代码随想录算法训练营第二十天| 235. 二叉搜索树的最近公共祖先 |701.二叉搜索树中的插入操作|450.删除二叉搜索树中的节点
return cur注意二叉搜索树的性质。
2025-03-03 09:23:44
396
原创 代码随想录算法训练营第十八天| 530.二叉搜索树的最小绝对差|501.二叉搜索树中的众数 |236. 二叉树的最近公共祖先
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。允许你在创建字典时指定一个默认值的工厂函数,当访问一个不存在的键时,它会自动创建该键,并使用默认值工厂函数返回的值作为该键的值,避免了。在普通字典中,当你尝试访问一个不存在的键时,Python 会抛出。给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
2025-03-01 21:37:41
211
原创 代码随想录算法训练营第十七天|654.最大二叉树|617.合并二叉树|700.二叉搜索树中的搜索|98.验证二叉搜索树
给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。通过给定的数组构建最大二叉树,并且输出这个树的根节点。#特殊情况maxnum=0maxindex=0#初始化maxindex=i。
2025-02-28 13:46:04
768
原创 代码随想录算法训练营第十六天| 找树左下角的值|路径总和| 从中序与后序遍历序列构造二叉树|
最底层最左边的节点使用递归+回溯depth+=1depth-=1depth+=1depth-=1。
2025-02-27 11:20:23
737
原创 代码随想录算法训练营第十五天|110.平衡二叉树|257. 二叉树的所有路径|404.左叶子之和|222.完全二叉树的节点个数
给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。因为求深度可以从上到下去查 所以需要前序遍历(中左右),而高度只能从下到上去查,所以只能后序遍历(左右中):= 海象运算符它可以在表达式内部为变量赋值,同时返回赋值后的值。
2025-02-26 11:36:24
317
原创 代码随想录算法训练营第十四天|226.翻转二叉树|101. 对称二叉树|104.二叉树的最大深度|111.二叉树的最小深度
递归三部曲:1 确定递归函数的参数和返回值2 确定终止条件3 确定单层递归的逻辑。
2025-02-25 10:53:08
340
原创 如何编辑autodl中以.bashrc结尾的隐藏文件
是一个在 Bash shell 启动时执行的脚本文件,常用于设置环境变量、定义别名、加载函数等,用户可以通过编辑这个文件来定制自己的 Shell 环境。那么应该如何打开这个隐藏文件并设置环境变量呢?在nnunet的运行过程中遇到了设置环境变量的问题。之前没有接触过linux系统,但是autodl里面默认是linux系统。提到nnunet,注意设置nnunet读取文件的路径是绝对路径不是相对路径。是一款功能强大但相对复杂的文本编辑器,在 Linux 系统中广泛使用。
2025-02-24 20:35:48
168
原创 代码随想录算法训练营第十三天|二叉树 理论基础|递归遍历|层序遍历
满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层(h从1开始),则该层包含 1~ 2^(h-1) 个节点。前面介绍的树,都没有数值的,而二叉搜索树是有数值的了,二叉搜索树是一个有序树。若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
2025-02-24 12:31:53
673
原创 代码随想录算法训练营第十一天|150. 逆波兰表达式求值|239. 滑动窗口最大值|347.前 K 个高频元素
根据 逆波兰表示法,求表达式的值。有效的运算符包括 + , - , * , /。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。逆波兰表达式:是一种后缀表达式,所谓后缀就是指运算符写在后面。平常使用的算式则是一种中缀表达式,如 ( 1 + 2 ) * ( 3 + 4 )。该算式的逆波兰表达式写法为 ( ( 1 2 + ) ( 3 4 + ) * )。
2025-02-22 14:41:41
723
原创 代码随想录算法训练营第十天|理论基础 |232.用栈实现队列|225. 用队列实现栈|20. 有效的括号|1047. 删除字符串中的所有相邻重复项
队列是先进先出,栈是先进后出。
2025-02-21 10:28:23
867
原创 代码随想录算法训练营第九天|151.翻转字符串里的单词|卡码网:55.右旋转字符串|28. 实现 strStr()|459.重复的子字符串
给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: "the sky is blue"输出: "blue is sky the"示例 2:输入: " hello world!输出: "world!hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: "a good example"输出: "example good a"解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。#字符串反转方法。
2025-02-20 09:48:30
407
原创 代码随想录算法训练营第八天|344.反转字符串|541. 反转字符串II|卡码网:54.替换数字
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:["H","a","n","n","a","h"]输出:["h","a","n","n","a","H"]"""
2025-02-19 09:49:26
345
原创 代码随想录算法训练营第七天|454.四数相加II |383. 赎金信|15. 三数之和|18. 四数之和
给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500。所有整数的范围在 -2^28 到 2^28 - 1 之间,最终结果不会超过 2^31 - 1。un_dict={}#注意起名不要和内置函数重复key=i+j#判断键是否在字典中else:#初始化时计数为1。
2025-02-18 11:58:11
928
空空如也
最大熵模型的约束条件在放入拉格朗日函数的时候如何确定形式和正负
2024-08-11
比赛验证集MSE0.005分数0.3这正常吗
2024-07-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人