自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 查找1的个数

如果从一个标为 1 的位置可以通过上下左右走到另一个标为 1 的位置,则称两个位置连通。与某一个标为 1 的位置连通的所有位置(包括自己)组成一个连通分块。小蓝有一个 30 行 60 列的数字矩阵,矩阵中的每个数都是 0 或 1 .请问矩阵中最大的连通分块有多大?

2024-03-19 21:12:07 197

原创 leetcode 判断是否为平衡二叉树

输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。

2024-03-15 21:37:42 294

原创 【leetcode】点名

某班级 n 位同学的学号为 0 ~ n-1。点名结果记录于升序数组 records。假定仅有一位同学缺席,请返回他的学号。输入: records = [0, 1, 2, 3, 4, 5, 6, 8]输入: records = [0,1,2,3,5]

2024-03-15 21:33:54 264

原创 动态口令【leetcode】

某公司门禁密码使用动态口令技术。输入: password = "s3cur1tyC0d3", target = 4。输入: password = "lrloseumgh", target = 6。将 password 前 target 个字符按原顺序移动至字符串末尾。法二:变成列表直接切片,简单易懂,本来想写循环,感觉麻烦了。输出: "r1tyC0d3s3cu"设定一个正整数目标值 target。输出: "umghlrlose"请返回更新后的密码字符串。法一:利用str的+

2024-01-30 23:09:07 307 1

原创 对角线遍历

在奇数轮次(如果 `s%2==1`),从当前列号 `p` 开始遍历该对角线,递减列号并将对应位置的元素添加到列表 `t` 中。- 在偶数轮次(如果 `s%2==0`),从当前行号 `m` 开始遍历该对角线,递减行号并将对应位置的元素添加到列表 `t` 中。- 在循环中,从第1行到第 `k` 行逐次遍历,并使用变量 `s` 表示当前遍历的行数(从1开始)。输入:mat = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,4,7,5,3,6,8,9]输出:[1,2,3,4]

2024-01-30 23:00:48 160

原创 字符串中的单词反转【leetcode】

你在与一位习惯从右往左阅读的朋友发消息,他发出的文字顺序都与正常相反但单词内容正确,为了和他顺利交流你决定写一个转换程序,把他所发的消息 message 转换为正常语序。注意:输入字符串 message 中可能会存在前导空格、尾随空格或者单词间的多个空格。第一次写的时候,while循环里边没有加i>=0会导致第一个单词无法输出,因为少了这个条件会导致i<0在最后一次循环后小于0了,无法再次进入循环,导致少了一次。解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。输出: "world!

2024-01-30 22:48:26 316

原创 螺旋遍历二维数组【leetcode】

螺旋遍历:从左上角开始,按照 向右、向下、向左、向上 的顺序 依次 提取元素,然后再进入内部一层重复相同的步骤,直到提取完所有元素。输入:array = [[1,2,3,4],[12,13,14,5],[11,16,15,6],[10,9,8,7]]输出:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]输入:array = [[1,2,3],[8,9,4],[7,6,5]]输出:[1,2,3,4,5,6,7,8,9]

2024-01-30 10:54:14 394

原创 寻找文件副本

设备中存有 n 个文件,文件 id 记于数组 documents。若文件 id 相同,则定义为该文件存在副本。请返回任一存在副本的文件 id。输入:documents = [2, 5, 3, 0, 5, 0]法一、简单易懂,还可以用哈希表。

2024-01-28 22:49:39 78

原创 leetcode搜索插入位置

`searchInsert`方法接收一个有序列表`nums`和目标值`target`作为参数,返回目标值在有序列表中的索引或插入位置。- 在循环内部,计算中间位置`mid`,通过 `(left + right) // 2` 的方式获取中间位置的索引。- 如果中间元素大于目标值,则需要在左侧继续搜索,将右指针`right`更新为`mid - 1`。- 初始化左指针`left`为0,右指针`right`为有序列表的最后一个元素的索引值。输入: nums = [1,3,5,6], target = 5。

2023-12-30 21:28:34 404

原创 leetcode合并区间

判断当前结果列表`res`中的最后一个区间`res[-1]`的结束位置是否大于等于当前区间`i`的起始位置。- 在有重叠的情况下,更新结果列表`res`中最后一个区间的结束位置,将其设置为当前区间`i`的结束位置和原始区间结束位置的较大值。- 从区间列表中的第二个区间开始迭代,通过遍历`intervals[1:]`来获取每个区间`i`。输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]输出:[[1,5]]

2023-12-30 21:27:02 399

原创 leetcode按规则计算统计结果

数组 arrayA 记录了各个生物群体数量数据,其中 arrayA[i] 表示第 i 个生物群体的数量。请返回一个数组 arrayB,该数组为基于数组 arrayA 中的数据计算得出的结果,其中 arrayB[i] 表示将第 i 个生物群体的数量从总体中排除后的其他数量的乘积。情况2:如果有1个0,计算其余数字乘积时候,如果这个数字本身就是0,直接添加t就可以,如果这个数字不是0,那就直接返回0(说明其他数字相乘的时候存在了一个0,结果还是0)法一:简答的双重循环,超时了。法三、等我学习下答案哈哈。

2023-12-08 20:41:04 33

原创 leetcode文件排序

待传输文件被切分成多个部分,按照原排列顺序,每部分文件编号均为一个 正整数(至少含有两个文件)。传输要求为:连续文件编号总和为接收方指定数字 target 的所有文件。解释:在上述示例中,存在两个连续正整数序列的和分别为 18,分别为 [3, 4, 5, 6] 和 [5, 6, 7]。解释:在上述示例中,存在一个连续正整数序列的和为 12,为 [3, 4, 5]。输出:[[3,4,5,6],[5,6,7]]不同组合按照第一个文件编号 升序 排列。输入:target = 12。输出:[[3, 4, 5]]

2023-12-05 13:29:09 38

原创 leetcode调整数组顺序使奇数位于偶数前

教练使用整数数组 actions 记录一系列核心肌群训练项目编号。为增强训练趣味性,需要将所有奇数编号训练项目调整至偶数编号训练项目之前。请将调整后的训练项目编号以 数组 形式返回。思路简单,第一遍先遍历,找出奇数的个数有j个,然后再遍历,如果是奇数从前边第一个开始插入,如果是偶数就从第j个往后插入(前j个数字预留出来奇数的个数),缺点是占内存,两次循环时间长。输入:actions = [1,2,3,4,5]输出:[1,3,5,2,4]好长时间没写了,都忘了。解释:为正确答案之一。

2023-12-04 20:02:18 26

原创 nefu最优化理论实验四

【代码】nefu最优化理论实验四。

2023-12-04 19:00:44 23

原创 nefu操作系统实验3 线程通信

【代码】nefu操作系统实验3 线程通信。

2023-11-20 15:13:54 88

原创 差分隐私拉普拉斯机制进行数据的加密与解加密(简单类型)

要想满足解误差足够小,需要复杂算法和调参,暂时没有思路,四舍五入精度不够。

2023-11-19 21:13:46 68

原创 nefu最优化理论实验三【python】

实验三 动态规划——最短路径问题。根据图形信息,分别存储。

2023-11-10 11:37:25 43

原创 leetcode 2的幂

给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true;否则,返回 false。如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。进阶:你能够不使用循环/递归解决此问题吗?解释:24 = 16。

2023-06-07 10:48:26 50

原创 leetcode汇总区间

否则,说明当前区间包含多个连续的数组元素,需要使用 "start->end" 格式进行总结。然后检查右指针是否可以向右移动,如果下一个数与当前数相邻,说明当前区间可继续扩展,右指针向右移动一位。如果不是,则说明已经到达当前区间的最后一个数,需要将当前区间总结为一个字符串并将其添加到结果列表中。这段代码实现了一个 "总结区间" 的功能,即将连续的数值区间表示成一个范围。输出:["0","2->4","6","8->9"]输出:["0->2","4->5","7"]"a" ,如果 a == b。

2023-06-01 21:20:07 42

原创 leetcode位1的个数

在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。解释:输入的二进制串 00000000000000000000000010000000 中,共有一位为 '1'。

2023-05-30 19:09:47 28

原创 leetcode多数元素

时间复杂度:该算法的时间复杂度是 O(∞) 的,因为在最坏情况下,可能需要无限次地重新选择随机数才能找到最终的众数。算法使用了 Boyer-Moore 投票算法,通过遍历数组并使用计数器来动态确定当前众数的候选对象,并在遇到非候选元素时对计数器进行相应的修改,以便不断地更新众数的值。此外,该算法的时间复杂度为 �(�)O(n),空间复杂度为 �(1)O(1),是一种相对高效的解决众数问题的算法实现。需要说明的是,该算法的正确性得以保证的前提条件是该数组中存在众数,否则可能会得到错误的结果。

2023-05-30 18:37:28 24

原创 leetcode excel表列名称

这是因为在 Excel 中列名称从 A~Z 各占一个位置,而默认实现中每次计算出来的字母都比标准值(A~Z)大一,需要将其向左偏移一位才能得到正确的结果。进入 while 循环,计算 columnNumber 对 26 取余的结果 m,并将 columnNumber 对 26 取整,相当于更新 columnNumber 的值;如果余数 m 为 25(即该位代表 Z),将字符 "Z" 添加到列表 a 中,否则将该余数对应的字母添加到列表 a 中;输出:"FXSHRXW"

2023-05-30 14:20:18 61

原创 leetcode只出现一次的数字

假设有两个数字 a 和 b,它们的二进制表示中的某一个位不同,则这一位上的值为 1。因此,a^b 的结果就是 a 和 b 的二进制数在每一位上进行 XOR 后得到的结果。对于这道题目,我们可以将数组中所有的数进行异或操作,最终的结果即为只出现过一次的那个数字,因为相同的数字进行异或操作后会得到 0,而任何数字与 0 进行异或操作都会得到它本身。这段代码是用于找到一个整数数组中只出现一次的数字的方法。输入:nums = [4,1,2,1,2]输入:nums = [2,2,1]输入:nums = [1]

2023-05-30 13:25:07 22

原创 leetcode验证回文字符串

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。需要注意的是,在函数末尾有一个注释 :"生成这段代码的解释",这是一处意外的代码缩进导致的错误。给你一个字符串 s,如果它是 回文串 ,返回 true;解释:"amanaplanacanalpanama" 是回文串。解释:在移除非字母数字字符之后,s 是一个空字符串 ""。由于空字符串正着反着读都一样,所以是回文串。解释:"raceacar" 不是回文串。同样缩进,形成一个完整的代码块。输入:s = " "

2023-05-30 12:23:14 39

原创 leetcode买卖股票的最佳时机

解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;解释:在这种情况下, 没有交易完成, 所以最大利润为 0。输入:prices = [7,6,4,3,1]输入:[7,1,5,3,6,4]

2023-05-30 12:00:03 32

原创 leetcode爬楼梯

具体来说,在每次循环中,变量 p 存储上上次循环计算的爬楼方式数量,变量 q 存储上次循环计算的爬楼方式数量,变量 res 存储当前循环计算的爬楼方式数量,其中变量 i 表示当前循环执行的总次数。在每次循环中,我们将变量 p 值赋给变量 q、变量 q 值赋给变量 res、并将变量 p 和变量 q 相加后的值赋给变量 res,以求出下一级楼梯的爬楼方式数量。循环迭代结束后,变量 res 的值即为到第 n 级台阶时的爬楼方式数量。1. 1 阶 + 1 阶 + 1 阶。1. 1 阶 + 1 阶。

2023-05-29 18:45:55 32

原创 leetcode杨辉三角

这一行代码的作用就是构造具有左右两侧补零特性的两个列表,并将它们按元素两两组合。这样得到的元组列表就可以用来计算某一层中每个位置上的元素了。双层循环,随后在内层循环设计一个列表,若为第一列或最后一个,值为1,其他的利用分层解决,通俗易懂。输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]函数可以将多个列表按元素依次打包成元组,然后返回由这些元组组成的可迭代对象。的位置时,需要使用上一行中不存在的值,此时我们可以将这些位置的值设置为。,其中每个元素都是一个元组,包含。

2023-05-29 18:41:15 54

原创 leetcode求x的平方根

注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5。解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去。给你一个非负整数 x ,计算并返回 x 的 算术平方根。法二、运行速度极慢,超1000ms。法三、二分法,关键处还是有点生疏。

2023-05-28 18:52:33 31

原创 leetcode二进制求和

需要注意的是,由于该算法采用逐位计算的方式,需要在循环过程中不断调整指针移动的位数,并且需要考虑进位和特殊情况的处理,因此比起直接使用内置函数的方法会稍显复杂,但完全可以胜任较为复杂的二进制转换与计算任务。对转换后的整数结果使用+运算符进行求和,并再次使用'{0:b}'格式化方法,将结果表示为二进制字符串类型,其中{0}表示占位符,冒号后面的“b”指定该占位符所需的格式为二进制。这段代码是Python语言的一个类中的函数定义,实现将给定的两个二进制字符串a和b进行相加的功能。输出:"10101"

2023-05-28 15:24:35 121

原创 leetcode加一

需要注意的是,在函数体内可以包含多个return语句,但是只有第一个执行到的 return 语句会生效并返回其相应的值,如果函数中的条件满足多个 return 语句,则程序将只会执行第一个符合条件的 return 语句,而忽略后续的所有 return 语句。定义了一个名为Solution的类,并在其中声明了一个名为plusOne的函数,该函数需要传入一个整数列表digits,并返回一个整数列表。这段代码是Python语言的一个类中的函数定义,实现将给定整数数组加1的功能。

2023-05-28 14:27:02 32

原创 leetcode最后一个单词的长度

在Python中,空格通常被视为字符串中的一个普通字符,但也可以使用其他方式处理简单字符串分割、去除多余空格等操作,例如split()方法和strip()方法。需要注意的是,该算法并没有去除字符串末尾的多余空格、特殊字符等,对于输入字符串仅当其中只包含单词及空格时才能正确得到最后一个单词的长度,因此还需要根据实际应用场景对算法进行扩展和优化。定义了一个名为Solution的类,并在其中声明了一个名为lengthOfLastWord的函数,该函数需要传入字符串类型的参数s,并返回一个整数。

2023-05-28 13:38:03 43

原创 leetcode搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。输入: nums = [1,3,5,6], target = 5。输入: nums = [1,3,5,6], target = 2。输入: nums = [1,3,5,6], target = 7。请必须使用时间复杂度为 O(log n) 的算法。法一、直接按照题意编写,时间复杂度高、通俗易懂。nums 为 无重复元素 的 升序 排列数组。法二、二分法,学过又忘了,感觉很重要。

2023-05-28 13:00:31 39

原创 nefu算法设计与分析实验四【python】

有n件物品和一个容量为c的背包。第i件物品的价值是v[i],重量是w[i]。求解将哪些物品装入背包可使价值总和最大。所谓01背包,表示每一个物品只有一个,要么装入,要么不装入。30 20 40 10 //物品重量。10 20 30 40 //物品价值。0 0 1 1 //最优解。第3行:n个物品的重量。第4行:n个物品的价值。50 //背包容量。70 //最优值。4 //物品个数。

2023-05-23 19:54:17 65 1

原创 leetcode移除元素

例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。输入:nums = [0,1,2,2,3,0,4,2], val = 2。元素的顺序可以改变。输入:nums = [3,2,2,3], val = 3。输出:5, nums = [0,1,4,0,3]

2023-05-23 19:53:40 39 1

原创 leetcode删除有序数组中的重复项

给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2。输入:nums = [0,0,1,1,1,2,2,3,3,4]

2023-05-17 18:55:41 45 1

原创 nefu算法设计与分析实验三【python】

平均等待时间是n 个顾客等待服务时间的总和除以n。第2行是k+1个整数:表示第k个加油站与第k-1个加油站之间的距离。第一行是正整数n,表示有n 个顾客。接下来的1行中,有n个正整数,表示n个顾客需要的服务时间。接下来的n行中,每行有2 个整数,分别表示闭区间的2个端点。去掉尽可能少的闭区间,使剩下的闭区间都不相交。2、算法设计:对于给定的n和k个加油站位置,计算最少加油次数。对于给定的n个顾客需要的服务时间,编程计算最优服务次序。给定n 个闭区间,编程计算去掉的最少闭区间数。计算出的去掉的最少闭区间数。

2023-05-17 18:44:30 218

原创 leetcode有效的符号

判断字符串是否有效。法一、有点投机的成分在。法二 、利用栈的原理。

2023-05-17 18:41:13 35

原创 leetcode最长公共前缀

【代码】最长公共前缀。

2023-05-17 18:35:18 25 1

原创 leetcode罗马数字转整数

数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。如果存在就num+=对应的数值,接着用replace函数删除对应的特殊字符,再对剩余的接着判断。s 仅含字符 ('I', 'V', 'X', 'L', 'C', 'D', 'M')将特殊的比如IV,IX等删除后,只剩下正常的字符,用迭代法,将每个字符对应的数值加上。I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。

2023-04-25 16:53:28 38 1

NEFU人工智能嵌入式开发课程设计

小车巡线实验,代码无问题可以通过,照着烧录就可以了,跑的时候记得调红外线灯光即可

2023-06-28

NEFU人工智能嵌入式开发实验

嵌入式开发实验

2023-06-28

NEFU c语言程序设计

c语言课程设计,完整可运行,不会操作留言

2023-06-28

NEFU计算机组成原理四次实验报告

实验报告

2023-06-28

NEFU算法设计与分析实验报告

NEFU算法设计与分析实验报告

2023-06-28

空空如也

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

TA关注的人

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