- 博客(22)
- 收藏
- 关注
原创 239. 滑动窗口最大值
给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。
2024-06-26 16:52:32
93
原创 LeetCode150. 逆波兰表达式求值
输入: ["10", "6", "9", "3", "+", "-11", " * ", "/", " * ", "17", "+", "5", "+"]给定逆波兰表达式总是有效的。每个运算对象可以是整数,也可以是另一个逆波兰表达式。平常使用的算式则是一种中缀表达式,如 ( 1 + 2 ) * ( 3 + 4 )。该算式的逆波兰表达式写法为 ( ( 1 2 + ) ( 3 4 + ) * )。逆波兰表达式:是一种后缀表达式,所谓后缀就是指运算符写在后面。根据 逆波兰表示法,求表达式的值。
2024-06-25 18:03:29
225
原创 LeetCode1047. 删除字符串中的所有相邻重复项
给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在完成所有重复项删除操作后返回最终的字符串。在 S 上反复执行重复项删除操作,直到无法继续删除。
2024-06-25 17:14:44
137
原创 系统cuda版本与虚拟环境版本cuda不一致
因为我系统的cuda版本为12.0。虚拟环境中的cuda为11.3,理论上应该互不影响,但却报错。经过问题的查找,发现为Anconda3的系统变量设置的有问题,它会直接指向系统的cuda版本。如下图,是原来的环境变量设置,它没有指向anconda的路径,而是指向了系统cuda。在进行环境搭建后,编译虚拟环境中的文件。我用的是Anconda3创建的虚拟环境,在安装完cuda版本11.3,pytorch1.12.1后,编译文件,报错。下面是更改后的环境变量。更改后,编译就可以通过了。
2024-06-25 14:59:20
290
1
原创 LeetCode232用栈实现队列
push(x) -- 将一个元素放入队列的尾部。peek() -- 返回队列首部的元素。empty() -- 返回队列是否为空。pop() -- 从队列首部移除元素。
2024-06-24 15:37:20
251
原创 LeetCode151翻转字符串里的单词
解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。给定一个字符串,逐个翻转字符串中的每个单词。输入: " hello world!输入: "a good example"输入: "the sky is blue"输出: "blue is sky the"输出: "example good a"输出: "world!
2024-06-21 20:43:47
157
原创 LeetCode541反转字符串
给定一个字符串 s 和一个整数 k,从字符串开头算起, 每计数至 2k 个字符,就反转这 2k 个字符中的前 k 个字符。在遍历字符串的过程中,让 i += (2 * k),i 每次移动 2 * k 就可以了,然后判断是否需要有反转的区间。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。如果剩余字符少于 k 个,则将剩余字符全部反转。输入: s = "abcdefg", k = 2。输出: "bacdfeg"
2024-06-21 20:05:13
164
原创 LeetCode344反转字符串
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。输入:["H","a","n","n","a","h"]输出:["h","a","n","n","a","H"]输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]
2024-06-21 16:35:50
89
原创 LeetCode18四数之和
四数之和的双指针解法是两层for循环nums[k] + nums[i]为确定值,依然是循环内有left和right下标作为双指针,找出nums[k] + nums[i] + nums[left] + nums[right] == target的情况,三数之和的时间复杂度是O(n^2),四数之和的时间复杂度是O(n^3)。满足要求的四元组集合为: [ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2] ]就返回了,三数之和 可以通过。答案中不可以包含重复的四元组。
2024-06-20 15:17:29
121
原创 LeetCode15三数之和
这个题难在去重,要想清楚怎么去重,a,b,c都要去重。a要与a的前一个循环数比较,也就是i-1。如果i-1时的a之前没有出现,可以继续,出现过,则表示这个a已经用过了。给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 请你找出所有满足条件且不重复的三元组。满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ]给定数组 nums = [-1, 0, 1, 2, -1, -4],答案中不可以包含重复的三元组。
2024-06-20 12:11:56
122
原创 LeetCode383 赎金信
给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。否则返回 false。这道题目和(242有效的字母异位词)很像,相当于求 字符串a 和 字符串b 是否可以相互组成 ,而这道题目是求 字符串a能否组成字符串b,而不用管字符串b 能不能组成字符串a。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。
2024-06-20 10:32:22
159
原创 LeetCode454四数相加II
为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500。所有整数的范围在 -2^28 到 2^28 - 1 之间,最终结果不会超过 2^31 - 1。给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。
2024-06-20 09:45:00
137
原创 LeetCode01两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。给定 nums = [2, 7, 11, 15], target = 9。因为 nums[0] + nums[1] = 2 + 7 = 9。所以返回 [0, 1]
2024-06-19 18:32:56
144
原创 LeetCode202快乐数
快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True;不是,则返回 False。编写一个算法来判断一个数 n 是不是快乐数。
2024-06-19 11:25:54
173
原创 LeetCode349两个数组的交集
这里我用的是List,因为最后我们得到是List,但官方是数组,所以在定义时应该为。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。这里我们返回的是数组,最后要将数组转化为List,可以用如下代码。这里定义了一个新的空数组,来存放我们得到的结果resultSet。题意:给定两个数组,编写一个函数来计算它们的交集。
2024-06-19 09:37:23
194
原创 LeetCode142环形链表II
题意: 给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回 null。为了表示给定链表中的环,使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。:不允许修改给定的链表。
2024-06-17 14:51:36
263
原创 LeetCode242.有效的字母异位词
示例 1: 输入: s = "anagram", t = "nagaram" 输出: true。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 2: 输入: s = "rat", t = "car" 输出: false。你可以假设字符串只包含小写字母。
2024-06-17 14:47:22
311
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人