leetcode
文章平均质量分 50
不定时更新leetcode300题,分别用c java python实现
冰魄雕狼
有问题可联系 723654173@qq.com
展开
-
第十八题:四数之和
首先对数组进行排序,然后遍历数组,对于每一个元素,设定一个新的目标值为原目标值减去这个元素的值,再利用三数之和的解法找到剩下的三个数。为了避免重复,在遍历过程中需要跳过与前一元素相同的元素。给定一个包含 n 个整数的数组 nums 和一个目标值 target,找出 nums 中的四个整数,使得它们的和等于 target。你可以假设每个输入都只有一个解决方案,并且不能使用同一个元素多次。时间复杂度为 O(n^3),其中 n 是数组中的元素数量。空间复杂度主要取决于结果列表的空间需求,最坏情况下为 O(n)。原创 2024-09-07 08:52:39 · 456 阅读 · 0 评论 -
第十七题:电话号码的字母组合
O(4^n * n),其中n是输入字符串的长度。因为最多会有4个选项('7’和’9’有4个选项,其他数字有3个选项),并且对于每一个组合,我们都需要额外的时间来构造这个字符串。使用哈希表或数组存储每个数字对应的字符,然后通过递归或迭代的方式生成所有可能的组合。如果字符串长度为n,则可以看作是n层循环,每层循环可以选择对应数字的所有字符之一。给定一个仅包含数字 2-9 的字符串,返回所有可能的由它组成的字母组合。你可以假设输入字符串至少包含一个数字,并且不超过3位数字。原创 2024-09-07 08:49:03 · 503 阅读 · 0 评论 -
第十六题:最接近的三数之和
找出 nums 中的三个整数,使得它们的和与 target 最接近。先对数组进行排序,然后遍历数组中的每个元素作为三元组的第一个元素,对于每个元素使用双指针法在剩下的数组中寻找另外两个数,使得三者之和最接近目标值。为了避免重复计算,可以跳过重复的元素。时间复杂度为 O(n^2),其中 n 是数组的长度。空间复杂度为 O(1),不考虑输出结果的空间消耗。解释:与 target 最接近的和为 2 (-1 + 2 + 1 = 2)。输入:nums = [-1, 2, 1, -4], target = 1。原创 2024-09-06 10:44:25 · 255 阅读 · 0 评论 -
第十五题:三数之和
首先我们对数组进行了排序,排序的时间复杂度为 O(n log n),之后我们对每一个元素执行了两重循环来查找可能的解,这一步的时间复杂度为 O(n^2)。因此,总体的时间复杂度是 O(n^2)。空间复杂度主要取决于排序的空间开销以及存储结果的空间开销,通常为 O(1) 或者 O(n) 取决于排序算法的具体实现。首先对数组进行排序,然后遍历数组,对于每一个数 nums[i],设定两个指针 left 和 right 分别指向 i+1 和 n-1 的位置,计算三数之和,根据和与 0 的大小关系移动指针。原创 2024-09-06 10:38:06 · 337 阅读 · 0 评论 -
第十四题:最长公共前缀
时间复杂度主要取决于字符串数组中最长的字符串长度以及字符串的数量。在最坏的情况下,时间复杂度为 O(S),其中 S 是所有字符串中字符的总数。空间复杂度为 O(1),因为只使用了固定的额外空间。遍历字符串数组,逐个字符比较每个字符串的字符与第一个字符串的字符是否相同,遇到不同的字符或某个字符串结束时停止比较。可以优化的是选择最短的字符串作为基准,减少不必要的比较次数。编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。原创 2024-09-05 09:51:57 · 485 阅读 · 0 评论 -
第十三题:Roman to Integer
罗马数字包含以下七种字符: I, V, X, L, C, D 和 M。字符相同的数字表示相加的数,较小的数字在较大的数字前面表示相减的数。给定一个罗马数字,将其转换为整数。遍历字符串,比较相邻两个字符的值,如果前一个字符代表的数值小于等于后一个字符代表的数值,则将前一个字符对应的值累加到结果中;否则从结果中减去前一个字符对应的值。O(n),其中n是罗马数字字符串的长度。因为只需要遍历一次字符串即可得到结果。输入: “MCMXCIV”输入: “LVIII”原创 2024-09-05 09:47:40 · 338 阅读 · 0 评论 -
第十二题:整数转罗马数字
创建一个映射表存储罗马数字的字符与对应的数值。从大到小遍历映射表中的数值,每次尝试将当前数值减去输入的整数,并将对应的罗马字符添加到结果字符串中,直到输入的整数小于当前数值为止。重复此过程直到输入的整数变为0。给定一个整数,将其转换为罗马数字。输入确保在 1 到 3999 的范围内。O(1) - 因为输入范围固定且有限,循环次数不会超过固定的次数。原创 2024-09-05 09:42:38 · 345 阅读 · 0 评论 -
第十一题:盛最多水的容器
给定 n 个非负整数 a1, a2, …, an, 每个数代表坐标中的一个点 (i, ai)。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。初始时,两指针分别位于数组的两端。计算当前指针所夹成的容器面积,然后移动指向较短边界的指针向中间靠拢,直到两指针相遇。这样可以保证有机会找到更大的面积。O(n),其中 n 是数组的长度。每个元素只会被访问一次。输入: [1,8,6,2,5,4,8,3,7]原创 2024-09-04 09:16:53 · 367 阅读 · 0 评论 -
第十题:正则表达式匹配
我们可以使用动态规划来解决这个问题。‘*’ 匹配零个或多个前面的那一个元素。所谓匹配,是要涵盖整个输入字符串(,表示空字符串与空模式匹配。空间复杂度也为 O(m。可能为空,且只包含从。可能为空,且只包含从。‘.’ 匹配任意单个字符。的小写字母,以及字符。,请你来实现一个支持。的正则表达式的匹配。),而不是部分字符串。时间复杂度为 O(m。原创 2024-09-04 08:58:31 · 531 阅读 · 0 评论 -
第九题:回文数字
时间复杂度为 O(log n),其中 n 是输入数字 x 的大小。这是因为每次循环都会将 x 除以 10,直到 x 减少到小于反转的一半。由于我们是在处理整数的每一位,所以循环次数不会超过整数的位数,即 log(n)。为了不将整数转换为字符串,可以考虑通过数学的方式来解决这个问题。一种方法是反转一半的数字,然后比较反转的部分是否与另一半相同。对于奇数位数的数字,在中间位上不需要做比较。给定一个整数 x ,编写一个函数来判断 x 是否为回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的数。原创 2024-09-03 20:40:08 · 330 阅读 · 0 评论 -
第八题:字符串转换整数 (atoi)
实现函数,将字符串转换成 32 位有符号整数。函数首先丢弃字符串前面的空格字符,直到找到第一个非空格字符为止。然后,选择该非空格字符和之后的连续字符组成一个存储整数的字符串。字符串可以包含额外字符,这些字符在形成整数的字符串后面,并被忽略。如果第一个非空格字符不是数字且不是符号或者,则不进行转换并返回 0。如果转换过程中存在任何无法识别的字符,则提前停止转换,并返回已经得到的结果。如果转换后的结果超过 32 位有符号整数范围,则返回整数边界。原创 2024-09-03 19:59:54 · 355 阅读 · 0 评论 -
第七题:整数反转(Reverse Integer)
给定一个 32 位有符号整数x,返回其反转后的整数。反转后的整数可能会超出 32 位整数的范围,因此需要注意处理溢出情况。x = 123321x = -123-321x = 12021x = 00需要考虑反转后的整数是否会超出 32 位整数的范围。32 位有符号整数的范围是 ([-2^{31}, 2^{31} - 1]),即 ([-2147483648, 2147483647])。原创 2024-08-25 08:37:02 · 201 阅读 · 0 评论 -
第六题:Z字形变换(Zigzag Conversion)
将给定的字符串s以指定的行数numRows进行“Z字形”排列,然后按行读出字符串并返回。你需要将字符串s按照numRows行的Z字形排列,并返回按行读取的结果。原创 2024-08-25 08:31:11 · 390 阅读 · 0 评论 -
第五题:最长回文子串(Longest Palindromic Substring)
leetcode第五题最长回文子串的c,javapython的三种实现原创 2024-08-24 09:25:40 · 675 阅读 · 0 评论 -
第四题:求两个有序数组的中位数(Median of Two Sorted Arrays)
leetcode第四题Median of Two Sorted Arrays的c,java,python实现原创 2024-08-24 09:21:43 · 595 阅读 · 0 评论 -
第三题:无重复字符的最长子串
leetcode第三题,给定一个字符串 s,请你找出其中不含有重复字符的 最长子串 的长度。用c java python 实现原创 2024-08-23 11:28:37 · 193 阅读 · 0 评论 -
第二题:两数相加
LeetCode 第二道题目是 “两数相加”(Add Two Numbers)。以下是详细的解题思路及 C、Java 和 Python 的实现。原创 2024-08-23 11:13:58 · 218 阅读 · 0 评论 -
第一题:两数之和
leetocde第一题,两数之和原创 2024-08-23 11:09:16 · 372 阅读 · 0 评论