- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 【leetcode第17题—探究电话号码的字母组合】
给定一个仅包含数字 2-9 的字符串,返回所有可能的字母组合。2 -> "abc"3 -> "def"4 -> "ghi"5 -> "jkl"6 -> "mno"8 -> "tuv"通过本篇博客,我们学习了如何利用回溯算法来生成电话号码的所有可能字母组合。
2024-04-15 10:43:32 255 1
原创 【leetcode第16题—求最接近目标值的三数之和】
给定一个整数数组nums和一个目标值target,要求在数组中找到三个整数,使得它们的和与目标值target最接近。返回这三个整数的和。对数组排序的时间复杂度为 O(nlogn),外部循环遍历数组的时间复杂度为 O(n),内部双指针遍历的时间复杂度为 O(n),因此总的时间复杂度为 O(nlogn + n^2) = O(n^2)。空间复杂度为 O(1),因为只使用了常数级别的额外空间。
2024-04-07 23:10:53 366
原创 【leetcode第15题—解决三数之和问题】
给你一个整数数组nums,判断是否存在三元组满足i!= ji!= k且j!= k,同时还满足。请你返回所有和为0且不重复的三元组。答案中不可以包含重复的三元组。示例 1:不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。示例 2:[]唯一可能的三元组和不为 0。示例 3:[[0,0,0]]唯一可能的三元组和为 0。双指针法与排序是解决三数之和问题的一种高效方法,其时间复杂度为 O(n^2),其中 n 是数组的长度。
2024-04-07 23:07:57 367
原创 【leetcode第14题—寻找最长公共前缀:Python解决方案】
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例 1:"fl"示例 2:""输入不存在公共前缀。strs[i]仅由小写英文字母组成对于给定的 n 个字符串,假设最长公共前缀的长度为 m,那么该算法的时间复杂度为 O(m*n),其中 m 是最长公共前缀的长度,n 是字符串数组的长度。空间复杂度为 O(1),因为我们只使用了常数级别的额外空间。
2024-04-07 23:07:26 324
原创 【leetcode第13题—罗马数字转整数】
罗马数字包含以下七种字符:IVXLCD和M。字符数值例如, 罗马数字2写做II,即为两个并列的 1。12写做XII,即为XII。27写做XXVII, 即为XXVII。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做IIII,而是IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为IX。I可以放在V(5) 和X(10) 的左边,来表示 4 和 9。X可以放在L(50) 和C。
2024-04-07 23:04:45 295
原创 【leetcode第12题—使用Python将整数转换为罗马数字】
罗马数字包含以下七种字符:IVXLCD和M。字符数值例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为XII。27 写做XXVII, 即为XXVII。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做IIII,而是IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为IX。I可以放在V(5) 和X(10) 的左边,来表示 4 和 9。X可以放在L(50) 和C。
2024-04-01 10:47:29 807
原创 【leetcode第11题—最大容器装水问题】
给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i, 0)和。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。你不能倾斜容器。示例 1:49图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例 2:1双指针法是解决最大容器装水问题的一种高效方法,其时间复杂度为 O(n),其中 n 是数组的长度。
2024-03-28 20:36:31 364
原创 【leetcode第10题—正则表达式匹配】
给你一个字符串s和一个字符规律p,请你来实现一个支持'.'和'*'的正则表达式匹配。'.'匹配任意单个字符'*'匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。示例 1:false"a" 无法匹配 "aa" 整个字符串。示例 2:true因为 '*' 代表可以匹配零个或多个前面的那一个元素, 在这里前面的元素就是 'a'。因此,字符串 "aa" 可被视为 'a' 重复了一次。示例 3:true".*" 表示可匹配零个或多个('*')任意字符('.')
2024-03-28 20:35:48 283
原创 【leetcode第9题—回文数】
给你一个整数x,如果x是一个回文整数,返回true;否则,返回false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121是回文,而123不是。示例 1:x = 121true示例 2:x = -121false从左向右读, 为 -121。从右向左读, 为 121-。因此它不是一个回文数。示例 3:x = 10false从右向左读, 为 01。因此它不是一个回文数。通过这篇博客,我们学习了如何使用Python编写一个简单的函数来判断整数是否为回文数。
2024-03-28 20:29:17 156
原创 【leetcode第8题—字符串转换为整数(atoi)】
请你来实现一个函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的atoi函数)。函数读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。确定最终结果是负数还是正数。如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数(即,"123" -> 123, "0032" -> 32)。如果没有读入数字,则整数为0。
2024-03-12 17:10:06 1317 1
原创 【leetcode第6题—Z字形变换:优雅排列字符串】
将一个给定字符串s根据给定的行数numRows,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为行数为3时,排列如下:Y I R。请你实现这个将字符串进行指定行数变换的函数:示例 1:示例 2:Y A H RP I示例 3:"A"s由英文字母(小写和大写)、','和'.'组成Z字形变换是一道巧妙而实用的字符串排列问题。通过模拟字符排列的过程,我们可以高效地得到按指定行数进行Z字形排列的字符串。
2024-03-11 10:05:20 436
原创 【leetcode第5题—最长回文子串】
给你一个字符串s,找到s中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。示例 1:"bab""aba" 同样是符合题意的答案。示例 2:s = "cbbd""bb"s仅由数字和英文字母组成通过动态规划方法,我们可以高效地找到给定字符串中的最长回文子串。通过将复杂问题分解为简单的子问题,并使用存储子问题解的方法,我们避免了重复计算,从而提高了算法的效率。总的来说,这种方法在解决最长回文子串问题上具有很高的实用性和可行性。
2024-03-10 20:41:15 367
原创 【leetcode第4题—寻找两个正序数组的中位数】
给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。算法的时间复杂度应该为 O(log (m+n))。示例 1:2.00000合并数组 = [1,2,3] ,中位数 2示例 2:2.50000合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5二分查找法和暴力合并法都可以用来找到两个已排序数组的中位数。首先,二分查找法是一种更高效的方法,它通过二分查找在不合并数组的情况下找到中位数。
2024-03-10 20:28:29 1764
原创 【leetcode第3题—无重复字符的最长子串的Python算法】
给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。示例 1:输入:输出:3因为无重复字符的最长子串是"abc",所以其长度为 3。示例 2:输入:输出:1解释:因为无重复字符的最长子串是"b",所以其长度为 1。示例 3:输入:输出:3解释:因为无重复字符的最长子串是"wke",所以其长度为 3。请注意,你的答案必须是子串的长度,"pwke"是一个子序列,不是子串。s由英文字母、数字、符号和空格组成。
2024-03-09 22:27:10 1057 1
原创 【leetcode第2题—逆序链表相加的Python算法】
给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:[7,0,8]示例 2:[0]示例 3:每个链表中的节点数在范围[1, 100]内题目数据保证列表表示的数字不含前导零。
2024-03-09 22:17:05 367
原创 【leetcode第1题—高效解决Two Sum问题的Python算法】
给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target 的那两个整数,并返回它们的数组下标。
2024-03-06 21:32:30 346
Dijkstra算法(C语言版)
2023-11-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人