leetcode周赛
第388场周赛(模拟参赛) 100233. 重新分装苹果 给你一个长度为 n 的数组 apple 和另一个长度为 m 的数组 capacity 。 一共有 n 个包裹,其中第 i 个包裹中装着 apple[i] 个苹果。同时,还有 m 个箱子,第 i 个箱子的容量为 capacity[i] 个苹果。 请你选择一些箱子来将这 n 个包裹中的苹果重新分装到箱子中,返回你需要选择的箱子的 最小 数量。 注意,同一个包裹中的苹果可以分装到不同的箱子中 12345678class Solution: def minimumBoxes(self, apple: List[int], capacity: List[int]) -> int: capacity.sort(reverse=True) s = sum(apple) for i,item in enumerate(capacity): s -= item if s <= 0: return i+1 10...
leetcode困难题
10. 正则表达式匹配 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 12345678910111213141516171819#动态规划class Solution: def isMatch(self, s: str, p: str) -> bool: s, p = '0'+s, '0'+p #用'0'来代替'',使得题解更清晰 m, n = len(s), len(p) #dp[i][j]表明s[:i+1]是否与p[:j+1]匹配,因为我们前面加上了'0',所以这里dp[i][j]与s[i],p[j]关联 dp = [[False ] * n for _ in range(m)] dp[0][0] = Tru...
leetcode每日一题
2024年 3月 1号_2369. 检查数组是否存在有效划分 给你一个下标从 0 开始的整数数组 nums ,你必须将数组划分为一个或多个 连续 子数组。 如果获得的这些子数组中每个都能满足下述条件 之一 ,则可以称其为数组的一种 有效 划分: 子数组 恰 由 2 个相等元素组成,例如,子数组 [2,2] 。 子数组 恰 由 3 个相等元素组成,例如,子数组 [4,4,4] 。 子数组 恰 由 3 个连续递增元素组成,并且相邻元素之间的差值为 1 。例如,子数组 [3,4,5] ,但是子数组 [1,3,5] 不符合要求。 如果数组 至少 存在一种有效划分,返回 true ,否则,返回 false 。 1234567891011class Solution: def validPartition(self, nums: List[int]) -> bool: #动态规划,注意子数组为连续子数组,所以有效划分必须连在一起 n = len(nums) f = [True] + [False] * n #f(i+1)表示能有效...
leetcode-hot100
哈希 1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 1234567#穷举class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: n = len(nums) for i in range(n): for j in range(i+1,n): if nums[i] + nums[j] == target: return [i,j] 1234567#哈希表class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: mp = {} ...
leetcode简单题
1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案 123456class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: for i in range(len(nums)): for j in range(i+1,len(nums)): #两数不重复 if nums[i]+nums[j]==target: return([i,j]) 9. 回文数 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121 是回文,而 123 不是。 12...
在李沐大神d2l中踩过的坑
最近在用pytorch框架学习李沐大神的d2l,因为时间过去已久,可能因为版本等原因出现了一些问题,有些问题在网上找不到解决办法,在这里记录一下遇到的坑。 图片不显示文字 问题 坐标轴和图例都不显示文字,排查之后发现是svg格式渲染导致的问题,换一个格式就可以正常显示了。 解决方法 将torch源文件中的use_svg_display()函数中的backend_inline.set_matplotlib_formats(‘svg’)改为backend_inline.set_matplotlib_formats(‘png’)可以暂时缓解问题。 源文件路径在 环境/lib/site-packages/d2l/torch.py
博客搭建手册
花了一天时间搭建了博客,又花了一天时间修修补补,两天时间博客基本搭成了。虽然有一些想要的功能还是没有实现,但是也算是“麻雀虽小五脏俱全”了。搭建过程搜集了各方资料,前人种树后人乘凉,我也分享一下自己搭建过程中使用的工具和学习的教程。善用教程,但不要一味地听信教程,多看评论,善用搜索功能。 总体思路借鉴:从零开始搭建个人博客(超详细) 写文规范:markdown官方教程 第一步:注册软件代码托管平台GitHub,安装版本控制系统Git并绑定GitHub 工具:GitHub , Git , GitHub desktop(简化clone和commit) 第二步:购买域名 工具:腾讯云 第三步:安装js解释器note.js和基于note.js的博客框架hexo 工具:note.js , hexo 第四步:解析域名 工具:腾讯云 , GitHub 第五步:设置主题,网上有很多主题,我用过的有Next和butterfly,所有的主题通过魔改都能实现绝大部分功能,按照教程进行基本功能设置 工具:Next(功能比较多的主题) 或者 butterfly(这是我使用的主题) 教程:Next , bu...
二叉树相关知识点
二叉树的一些概念 二叉树_百度百科 二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个节点最多只能有两棵子树,且有左右之分。 二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个节点。 二叉树知识点最详细最全讲解 把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 1.每个节点有零个或多个子节点; 2.没有父节点的节点称为根节点; 3.每一个非跟节点有且仅有一个父节点; 4.除了根节点以外,每个子节点可以分为多个不想交的子树。 节点的度:节点拥有的子树的数目。 叶子:度为零的节点。 分支节点:度不为零的节点。 树的度:树中节点的最大的度 层次:根节点的层次为1,其余节点的层次等于该节点的双亲节点加1。 ...
机器学习笔记
视频地址:吴恩达机器学习 课件地址:本地自存 模型 线性回归 梯度下降法 repeat until convergence: { wj:=wj−α∂J(w,b)∂wj for j = 0..n-1b :=b−α∂J(w,b)∂b}\begin{align*} \text{repeat}&\text{ until convergence:} \; \lbrace \newline\; & w_j := w_j - \alpha \frac{\partial J(\mathbf{w},b)}{\partial w_j} \tag{1} \; & \text{for j = 0..n-1}\newline &b\ \ := b - \alpha \frac{\partial J(\mathbf{w},b)}{\partial b} \newline \rbrace \end{align*} repeat} until convergence:{wj:=wj−α∂wj∂J(w,b)b :=b−α∂b∂J(w,b)for j ...
