leetcode:布尔运算(动态规划版) 下面的是动态规划的一个模板,dp[i][j][result]表示从s的第i个元素到第个元素,结果为result的方案数。主要是第一层for循环从i到j的长度,长度从小到大,dp可以通过长度小的方案数,推出长度大的方案数。如果知道dp[0][2]和dp[3][5],那么dp[0][5]也可以推出来。开始使用的是DFS,遍历所有可能的情况,发现超时!最近又要考试,勉励自己复习一些之前学过的!假如:x|y|z|v。
如何搜集图片数据集(方法论) 目标检测数据集构建指南目标概述: 当前项目旨在创建一个专注于灭火器的单一类别目标检测数据集。数据集搜集策略一,搜集目前已存在的数据集1.Kaggle数据集(kaggle)2.谷歌数据集(谷歌)3.Amazon数据集(Amazon)4.UCI机器学习资源库(UCI)5.微软数据集(微软)二,爬虫大法1.首先在网站上搜索图片:2.接着找到图片下面的链接,排除广告链接,需要找到图片网站的链接。3.点进去发现又是一个可以搜集图片的网站。循环往复可以搜集到很多可以爬取图
使用Dockerfile构建镜像,使用及封装 (2)我们需要在这个目录下放需要执行的文件,并且再创建一个run_sh.sh文件,这个文件可以去执行我们需要的文件。镜像与容器的理解:镜像存在与磁盘中,类似于一个python文件。(1)首先运行镜像形成容器,容器会首先执行我们dockerfile中写到的run_sh.sh文件。注释:id表示CONTAINER ID,指的是运行中的容器。(3)查看构造的镜像,发现出现了一个新镜像。(3)使用这个文件,建立我们的镜像。(5)查看构造的容器,可以看见ID号。(4)使用我们的镜像构造容器。(2)查看目前的容器。
YOLOv8添加MobileViTv3模块(代码+free) MobileViTv3是一种为移动设备优化的轻量级视觉Transformer架构,它结合了卷积神经网络(CNN)和视觉Transformer(ViT)的特点,以创建适合移动视觉任务的轻量级模型。在ultralytics/nn创建vit文件夹,文件夹内放MobileViTv3以及需要的包。
python 二进制规则 例如 2,二进制为‘0b(30个0)10’。反码就是把其中0变成1,1变成0。那就是 要使用(异或),因为0^1 = 1, 1^1 = 0,那么2的反码 = 2 ^ (32个1)= '0b(30个1)01’
二叉树搜索序列(python) 解释: 数组 [2,1,3]、[2,3,1] 均可以通过从左向右遍历元素插入树中形成以下二叉搜索树。从左向右遍历一个数组,通过不断将其中的元素插入树中可以逐步地生成一棵二叉搜索树。对于这种找路径的题目,都是这个模板。经历两个for太长了,优化一下。,输出所有可能生成此树的数组。
尊享面试.验证二叉树的前序遍历(python) 加入10,4,3,6之后,再加入的数字num在( num<=4),那么肯定不行,在(4<num<6),可以加在6的左子树,在(6<num<10),可以加在6的右子树,在(10<num),可以加在10的右子树。就是说 (num<=4)不行,(4<num)行。每次加入栈中的元素都是(栈顶元素)的左子树的值,(最后弹出的元素)是即将加入数字num的父节点,num是(最后弹出的元素)的右子树的值。(维护每次弹出元素的最大值)是新加入num底线,num必须大于这个值,否则不是二叉搜索树。维护每次弹出元素的最大值。
洛谷模板.Floyd的深度理解(python) 不考虑i==k和j==k的情况(毕竟如果相等,那么edge[i][j]任然等于w或者inf),现在i!=k,那么edge[i][j] = min(edge[i][j], edge[i][k] + edge[k][j]),取值为节点i到j的情况,和节点i到k到j的情况,这里我就简写,i-j 和 i-1-j。edge[i][j] = min(edge[i][j], edge[i][2] + edge[2][j]),这里面存在。的情况,只有这两个吗?如果i和j直接存在路径,那么edge[i][j] = w。
leetcode.K站中转(python) 使用最小堆,每次弹出列表中最小花费的路径,利用steps避免走成一个环。发现我之前的问题,应该就是走进一个环中,导致数据增多,内存超了。那么dp【t】【i】 = min(dp【t】【i】,dp【t-1】【j】+cost【j】【i】),遍历所有路线。使用dp动态规划算法,设dp【t】【i】,表示转到第t站,从src到达i所需的最小花费数;理所当然的想用bfs,n=100肯定不会超时,谁知道题目针对,这次内存超了。开始准备用dfs深度搜索,发现n=100,dfs可能会超时,即使用了剪枝。
leetcode.所有可能的路径(python) 另一种是:从前往后考虑。rec代表的是当前dfs走过的节点,遍历到哪个节点就加进rec尾部,退出哪个dfs,就把当前节点弹出。一种是:从后往前考虑。如果这条路能到n-1节点,那么dfs返回一个rec列表,里面存路径。rec里面有路径,表明能走,如果是[],说明没路。
P5490.扫描线(python) 本题使用扫描线的模板,首先把所有x坐标排序去重,放进列表X中。对于每一块,高=lines[i+1]-lines[i],宽就等于在这一块中,每个矩阵的并。比如说图中,纵坐标在3-5之间,那么高度就是2,其中有两块矩阵并起来,计算并起来的宽度=80-10=70,高×宽就是这一块的面积。如果是1-6,它的左节点就是1-4,右节点就是5-6,我们发现从4到5,实际上差了20,显然不可行。其中需要注意的是,把X排完序,想要从坐标1开始计算,那在X最前面加一个-inf,保证排序从1开始。所有块的面积之和就是ans。
洛谷P3383 【模板】线性筛素数(python) 算法复杂度需要在O(n)附近,log10**8大概在18左右,nlogn应该超时了,不过python做这题,怎么尝试也会超时。接着改变数据结构,vis改编成字典会节省一部分内存,不过还不行。两个for循环,把i的j倍都设置成false。看了b站学习线性筛,相当于找到数学上的规律,剪枝。算法只能尽量精简,不断剪枝优化。