自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 .xml数据集转yolo.txt数据集

xml数据集转yolo.txt数据集。

2023-10-27 10:34:27 144

原创 Lua教程

占位符以 "%" 开头,后跟一个字符,表示要格式化的数据类型(例如,"%s" 表示字符串,"%d" 表示整数,"%f" 表示浮点数等)。函数来连接表中的元素,使用逗号和空格作为分隔符,并指定从第2个元素("banana")到第3个元素("cherry")进行连接。迭代这个数组的元素。它的作用是将不同类型的数据转换为字符串,并按照指定的格式组合成一个新的字符串。,需要确保模块所在的路径在Lua的模块搜索路径中,或者提供完整的路径。函数的第一个参数是格式化字符串,后面的参数是要插入到格式化字符串中的数据。

2023-10-13 17:18:44 1106

原创 leetcode每日一练-第977题-有序数组的平方

一次比较一头一尾两个数字,将最大的数字依次倒着填入result中。如果最后一个数字大于第一个数字则将末尾指针向前移动一个,同时将平方数填入result中;如果第一个数字大于最后一个数字,则将起始指针向后移动一个,同时将平方数填入result中。定义一个新数组result,和A数组一样的大小,让k指向result数组终止位置。不然只能比较对应位置的一头一尾的大小,而不能升序排列整个数组。i指向起始位置,j指向终止位置。

2023-10-10 19:51:51 168

原创 yolov5权重文件.pt转.bin文件

我的目录是:C:\Users\Administrator\Desktop\driving\yolov5-mask-42-master\runs\train\exp_yolov5s\weights里的best.pt。这样做是为了防止移植到Android端,检测时出现密密麻麻的检测框覆盖图片。转为onnx格式后,还需要再进行模型简化,不然会在转换的时候报错。查看网络的总体架构,如果不想安装到本地,可以直接点击。,选择刚才转换出来的best.onnx文件即可。4、ONNX转param、bin。

2023-09-13 16:44:04 897

原创 leetcode每日一练-第53题-最大子数组和

这是因为我们希望找到的是具有最大和的连续子数组,如果将当前元素加入之前的连续子数组后和更大,那么就继续扩展当前连续子数组;如果当前元素更大,说明开始一个新的子数组可能会更有利于获得更大的和。来分别记录全局的最大和和当前连续子数组的和。遍历数组时,我们不断更新。更新当前连续子数组的和,以便后续比较是否需要更新最大和。这两个选择中,我们选择较大的那个作为当前连续子数组的和。这行代码的作用是计算当前连续子数组的和。总之,这行代码的作用是在每个位置。就是最大的连续子数组和。,并比较是否需要更新。

2023-09-04 21:10:08 518

原创 leetcode每日一练-第121题-买卖股票的最佳时机

为当前价格,否则计算当前价格卖出时的利润,如果利润大于。维护两个变量:一个表示当前最低的股票价格。遍历数组中的每个价格,对于每个价格,更新。具体做法是,如果当前价格比。,另一个表示当前最大的利润。

2023-08-10 20:27:21 229

原创 leetcode每日一练-第70题-爬楼梯

初始情况下,当台阶数为 1 时,方法数为 1,当台阶数为 2 时,方法数为 2。它通过将问题分解为子问题并存储子问题的解,以避免重复计算,从而提高算法的效率。动态规划在算法设计和优化中具有广泛应用,能够有效地提高问题的求解效率,但也需要合理的状态定义、状态转移方程和边界条件来确保正确性。在解决子问题时,动态规划会使用一种记忆化的方法,将子问题的解保存在数据结构中,以便后续直接获取,避免重复计算。自底向上:从小问题开始,逐步构建出更大的问题的解,通常采用迭代的方式,从子问题的解推导出原问题的解。

2023-08-08 20:13:18 262

原创 leetcode每日一练-第278题-第一个错误的版本

它的核心思想是将待查找的数据与数据集的中间元素进行比较,从而排除一半的数据,然后继续在剩余的一半中继续查找,以此类推,直到找到目标元素或者确定目标元素不存在。return -1;如果中间元素比目标元素大,那么目标元素应该在左半部分,将终点位置更新为中间位置减一。如果中间元素比目标元素小,那么目标元素应该在右半部分,将起始位置更新为中间位置加一。重复步骤2到步骤5,直到起始位置大于终点位置,表示查找范围为空,目标元素不存在。比较中间元素与目标元素的大小关系,如果相等,则找到了目标元素,算法结束。

2023-08-07 20:14:48 268

原创 leetcode每日一练-第88题-合并两个有序数组

函数是一个排序算法,它可以对指定范围内的元素进行升序排序。这一行代码是用 C++ 的标准库函数。

2023-08-03 21:34:15 386

原创 leetcode每日一练-第108题-将有序数组转换为二叉搜索树

在给定中序遍历序列数组的情况下,每一个子树中的数字在数组中一定是连续的,因此可以通过数组下标范围确定子树包含的数字,下标范围记为 [left,right]。(Preorder Traversal):在二叉树中,先访问根节点,然后按照左子树、右子树的顺序递归遍历子树。在前序遍历中,根节点的访问顺序是最先的。(Inorder Traversal):在二叉树中,先按照左子树、根节点、右子树的顺序递归遍历子树。(Postorder Traversal):在二叉树中,先按照左子树、右子树、根节点的顺序递归遍历子树。

2023-08-02 20:15:58 415

原创 leetcode每日一练-第102题-二叉树的层序遍历

通过广度优先搜索(BFS)的方式,按层遍历二叉树节点,并将每层的节点值保存在一个一维数组中,然后再将所有的一维数组存储在二维数组中,最后返回二维数组作为层序遍历的结果。BFS(广度优先搜索)和DFS(深度优先搜索)是两种。,它们在搜索问题中有不同的应用和特点。寻找所有可能的路径或找到特定路径。适用于树或图中需要按层遍历节点。常见的图和树遍历算法。栈数据结构(或递归)

2023-08-01 14:34:23 373

原创 leetcode每日一练-第101题-对称二叉树

递归——循坏调用每个节点,先比较它的左子树和右子树的值是否相等,相等则看它左子树的左子树和右子树的右子树和左子树的右子树和右子树的左子树是否相等。左子树的左子树和右子树的右子树也对称,左子树的右子树和右子树的左子树也对称。一个二叉树是轴对称的条件是:它的。

2023-07-27 20:58:09 76

原创 leetcode每日一练-第98题- 验证二叉搜索树

来递归判断,函数表示考虑以 root 为根的子树,判断子树中所有节点的值是否都在 (l,r)的范围内(注意是开区间)。如果 root 节点的值 val 不在 (l,r)的范围内说明不满足条件直接返回,否则我们要继续递归调用检查它的左右子树是否满足,如果都满足才说明这是一棵二叉搜索树。函数递归调用的入口为 helper(root, -inf, +inf), inf 表示一个无穷大的值。,因为左子树里所有节点的值均小于它的根节点的值。①当程序需要多次检验是否符合条件时,那么根据二叉搜索树的性质,在。

2023-07-26 20:01:51 342

原创 leetcode每日一练-第141题-环形链表

使用了正确的快慢环指针方法来判断链表。快指针每次向前移动两步,慢指针每次移动一步,如果链表中向前移动一步,它们最终会相遇。如果链表不存在环,快指针会先到达链表是否存在,此时存在我们就可以判断链表没有环。同时,增加了我们对空链表的处理,避免了空指针访问。如果没有这样的条件判断,当快指针已经到达链表结束时,再进行的访问操作会导致空指针引用,造成程序崩溃fast->next。当链表中有环时,快指针和慢指针相遇。换句话说,两个指针都指向循环中的同一个节点。可能存在值相同但不存在循环的其他情况。

2023-07-24 20:49:48 122

原创 leetcode每日一练-第206题-反转链表

以输入为 1 -> 2 -> 3 -> 4 -> 5 的链表为例。使用prev和迭代建立一个新的链表,用来存储反转后的链表。

2023-07-19 20:22:52 60

原创 leetcode每日一练-第19题-删除链表的倒数第 N 个结点

然后创建两个指针slow和fast,开始时两个指针都指向dummy地址,fast先向前移动n+1个单位。最后删除倒数第n个节点,使倒数第n+1个节点直接指向倒数第n个的后面一个节点。利用fast移动到链表末尾的长度=slow移动到倒数n+1个位置的长度。首先创建一个哑节点dummy便于操作链表。的节点对象,并初始化其值为 0。然后同时操作slow和fast,初始化为指向虚拟头结点。

2023-07-18 21:18:59 57

原创 leetcode每日一练-第237题-删除链表中的节点

删除链表中的节点的常见的方法是定位到待删除节点的上一个节点,修改上一个节点的 next 指针,使其指向待删除节点的下一个节点,即可完成删除操作。将下一个节点的值复制到当前节点,然后修改指针来跳过下一个节点,从而达到删除当前节点的目的。最后,释放被删除的节点的内存空间。被删除节点的指针将变为无效指针,不应再进行访问或操作。释放该指针指向的内存空间,从而回收节点的资源。是要被删除的节点的指针。表示该节点指向的数值。

2023-07-17 20:39:16 48

原创 leetcode每日一练-第38题-外观数列

使用双指针,start 和 pos,用于跟踪当前报数序列的起始位置和遍历位置,用pos的数量统计相同字符的个数,prev[start]表示对应的字符,然后通过start=pos,识别下一个重复字符。从左到右依次扫描字符串 Sn−1中连续相同的字符的最大数目,然后将字符的统计数目转化为数字字符串再连接上对应的字符。

2023-07-13 20:17:04 42

原创 leetcode每日一练-第28题-找出字符串中第一个匹配项的下标

再循环内层j,终止条件为m,即needle的个数。相当于当i=0时,j=0、1、2;即i为起始位,j为偏移位。当循环直到j==m时,保证needle全部出现在haystack里。先循环外层的haystack字符串,循环终止条件为n-m,因为剩下的字符位数不满足needle,因此不再需要比较。是在内层循环中声明的,在内层循环中进行迭代,当内层循环结束后,变量。return -1;它只检查了第一个字符是否匹配,而没有进行完整的子字符串匹配。将超出其作用域,无法在外层循环中使用。① 利用循环条件,减少计算量。

2023-07-12 21:03:35 44

原创 leetcode每日一练-第8题-字符串转换整数

创建一个stringstream对象,用于将字符串s与流关联,再将stringstream对象中的内容转换为整数。// 获取 stringstream 对象中的字符串。// 获取 stringstream 对象中的字符串。// 将字符串写入 stringstream 对象。// 重置 stringstream 对象的字符串。// 清空 stringstream 对象的内容。可以将字符串解析为其他数据类型,如整数、浮点数等。// 将字符串解析为整数。// 将整数转换为字符串。方法重置对象的字符串。

2023-07-11 20:51:34 48

原创 leetcode每日一练-第125题-验证回文串

在代码中,比较运算符(>=、<=)用于字符常量的比较,所以应该使用单引号将字符常量括起来。最后使用双指针,一个从前向后遍历,一个从后向前遍历,比较两者是否相等,如果不相等返回false,相等返回true。类似地,对于判断是否为字母或数字的条件,也应使用单引号将字符常量括起来。字符常量应使用单引号(')括起来,而字符串常量应使用双引号(")括起来。,其中只包含小写字母和数字,且忽略了空格和其他非字母数字的字符。这是因为字符常量表示单个字符,而字符串常量表示一个字符序列。字符串进行比较,但是在比较时使用的是。

2023-07-10 21:17:28 53

原创 leetcode每日一练-第242题-有效的字母异位词

先统计s中不同字母的次数,再访问t中的字母,将与s中的相同字母的次数循环减1,直至为0.如果最后键值为0,则表示s和t中的字母次数相同,否则不同。不仅可以count[]++,也可以count[]--来比较两个字符串是否相等。在每次循环迭代中,将当前键值对赋值给变量。在每次循环迭代中,将当前字符赋值给变量。是一个范围基于范围的循环,用于遍历字符串。是一个范围基于范围的循环,用于遍历。类型的对象,包含键和值的信息。是一个类型推导的变量声明,用于自动推导变量的类型,中的每个字符,我们将在。中对应的计数值减一。

2023-07-09 11:56:35 43

原创 leedcode每日一练-第387题-字符串中的第一个唯一字符

利用哈希表统计每一个字符出现的次数,再通过循环返回第一个不重复的字符位置。在这个哈希表中,每个字符将作为键,对应的出现次数将作为值。中的每个字符依次赋值给变量。

2023-07-08 21:24:13 40

原创 leetcode每日一练-第7题-整数反转

2,147,483,648 到 2,147,483,647(或者称为 INT_MIN 到 INT_MAX)乘以10并加上下一位数,我们可以逐步构建出反转后的整数。例如,对于输入x=123,初始时。153 / 10 %10 除以10取整数15,再%10取余数得到十位数5。③错误原因:不能表示所有的情况(只能表示百位数)更新为321,最终得到反转后的结果321。②个位数、十位数、百位数的表达。153%10 取余数 得到个位。153/100取整 取百位。更新为32,第三次循环将。更新为3,第二次循环将。

2023-07-04 21:49:16 45

原创 leecode每日一练-第48题-旋转图像

【代码】leecode每日一练-第48题-旋转图像。

2023-07-02 17:37:52 134

原创 leetcode每日一练-第36题-有效的数独

if(rows[i][index]>1 || cols[j][index]>1 || subboxes[i/3][j/3][index]>1)//如果在行、列或3x3宫内的计数器值大于1,表示该数字在对应的范围内出现了多次,因此数独无效。//通过subboxes[i / 3][j / 3]访问第i行第j列所在3x3宫的计数器数组,然后通过[index]访问该数字的计数器,并将其加1。//然后,将得到的整数值减去1,是因为数组的索引是从0开始的,而数独中的数字是从1开始的。//表示每一列中数字的出现次数。

2023-06-29 20:44:03 29

原创 leetcode每日一练-第1题-两数之和

使用双指针,分别遍历前一项和后一项,查找两数之和是否等于target。①验证两个数的运算是否等于固定值时,也可以采用双指针方法。将结构添加到新建数组result中,最后返回数组。②还有需注意返回什么值,是整数、数组、还是空。

2023-06-28 20:10:40 22

原创 ※leetcode每日一练-第283题-移动零

一个指针用于迭代遍历数组中的元素,另一个指针用于指示下一个非零元素应该放置的位置。遍历数组,当遇到非零元素时,将其放置到第二个指针指向的位置,并将第二个指针向后移动一位。最后,将第二个指针之后的所有元素设为零即可。=========================================================================学到的知识:改变数组排列顺序,通常都用双指针方法。//将第二个指针之后的元素设为零。//将非零元素放置到指定位置。

2023-06-27 20:17:56 32

原创 leetcode-第66题-加一

/如果最高位有进位,插入新的最高位 将 carry 插入到 digits 数组的开头,也就是索引为 0 的位置,而后续的数字会自动向后移动一个位置。//将初始进位设置为1是因为我们想要实现加1的操作。如果将初始进位设置为0,那么就不会进行加1的操作,而是返回原始的数字。数组的开头,也就是索引为 0 的位置,而后续的数字会自动向后移动一个位置。不管进制是多少(2进制、8进制、十进制等)都一致。

2023-06-26 20:13:13 39

原创 每日一练leedcode-第350题-两个数组的交集 II

find 函数返回一个迭代器,指向找到的元素位置,如果未找到,则返回迭代器指向 counts 的末尾(即 end())。//在代码的执行过程中,我们遍历 nums1 向量,对于每个元素 num,将其作为键在 counts 中查找对应的值(即出现次数),并进行更新。= counts.end() 的判断条件是,如果在 counts 中找到了键为 num 的元素,则返回 true,表示找到了;如果返回值为 true,表示找到了相应的键,即 nums2 中的元素在 nums1 中也存在,可以进行交集的处理。

2023-06-25 21:11:50 37

原创 leetcode-第217题-存在重复元素

/seen.count(num) 返回元素 num 在集合 seen 中的个数。如果元素存在,则 返回 1(个数大于 0),表示集合中已经存在该元素。如果元素不存在,则返回 0(个数等于 0)。if (seen.count(num)>0)//std::unordered_set::count() 函数用于返回集合中指定元素的个数。中是否存在重复元素,一种常见的方法是使用哈希表(或集合)来记录已经遍历过的元素。在遍历过程中,如果遇到已经存在于哈希表中的元素,则表示存在重复。中,并继续遍历下一个元素。

2023-06-19 17:07:39 92

原创 leetcode每日一练-第189题-轮转数组

先轮转整个数组,再把前后两部分分别轮转。

2023-06-13 20:36:30 38

原创 leetcode每日一练-第122题-买卖股票的最佳时机 II

因为交易次数不受限,如果可以把所有的上坡全部收集到,一定是利益最大化的。即加上所有的上升数差值。

2023-06-13 19:51:51 26

原创 ※leetcode每日一练-第136题-只出现一次的数字

位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。其中~的结合方向自右至左,且优先级高于算术运算符,其余运算符的结合方向都是自左至右,且优先级低于关系运算符。&(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。其中,按位取反运算符是单目运算符,其余均为双目运算符。作用就是迭代容器中所有的元素,每一个元素的临时名字就是x;位运算符的优先级从高到低,依次为~、&、^、|,

2023-05-18 21:32:59 43

原创 leetcode每日一练-第67题-二进制求和

1、二进制的求和:如何表示每一位的值,如何表示下一位的进位。

2023-05-17 21:18:30 40

原创 leetcode每日一练-第235题-回文链表

在Python中,很容易构造一个列表的反向副本, 也很容易比较两个列表。我们在起点放置一个指针, 在结尾放置一个指针, 每- -次迭代判断两个指针指向的元素是否相 同,若不同,返回false;相同则将两个指针向内移动,并继续判断,直到两个指针相遇。在编码的过程中,注意我们比较的是节点值的大小,而不是节点本身。正确的比较方式 是: node_ 1.val == node_ _2.val,而node_ 1 == node_ 2是错误的。将链表的值复制到数组列表里,在使用双指针。1.复制链表值到数组列表中。

2023-05-08 21:27:17 59

原创 leetcode-第27题-移除元素

如果左指针left 指向的元素等于val,此时将右指针right指向的元素复制到左指针left 的位置,然后右指针right 左移- -位。如果赋值过来的元素恰好也等于val,可 以继续把右指针right指向的元素的值赋值过来(左指针left 指向的等于val的元素的位置继续被覆盖), 直到左指针指向的元素的值不等于val为止。这个优化在序列中val 元素的数量较少时非常有效。如果右指针指向的元素不等于val, 它-定是输出数组的一个元素,我们就将右指针指向的元素复制到左指针位置,然后将左右指针同时右移;

2023-04-26 19:47:32 33

原创 leetcode-第80题-删除排序数组的重复项 ||

具体地,我们定义两个指针slow和fast分别为慢指针和快指针,其中慢指针表示处理出的数组的长度,快指针表示已经检查过的数组的长度,即nums{fast] 表 示待检查的第一个元素, nums[slow- 1]为上一个应该被保留的元素所移动到的指定位置。nums[slow - 2] = nums[fast]时,当前待检查元素nums[fast]不应该被保留(因为此时必然有 nums[slow- 2] = nums[slow- 1] = nums[fast)。最后,slow 即为处理好的数组的长度。

2023-04-25 20:14:46 129

原创 leetcode-第26题-删除有序数组中的重复项

nums[fast]≠nums[fast - 1], 说明nums[fast和之前的元素都不同,因此将nums[fast]的值复制到nums[slou)],然后将slow的值加1,即指向下一个位置。定义两个指针fast和slow分别为快指针和慢指针,快指针表示遍历数组到达的下标位置,慢指针表示下一一个不同元素要填入的下标位置,初始时两个指针都指向下标1。遍历结束之后,从nums[0]到nums[slow - 1]的每个元素都不相同且包含原数组中的每个不同的元素,因此新的长度即为slow,返回slow即可。

2023-04-24 19:52:02 44

原创 leetcode-面试题08.06-汉诺塔问题

当n>1时,将n-1个元素先移动到B,将A的最后一个元素移到C,再递归调用move函数,借助A将B上的n-1个元素移动到C上。当n=1,直接将A的元素移动到C。

2023-04-23 20:52:32 209

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除