随笔分类 - LeetCode
摘要:题目 URL:https://leetcode.com/problems/container-with-most-water 解法 一、暴力破解 暴力破解是妥妥超时。 计算每一个水容器的体积,选出最大值。 暴力破解,时间复杂度O(n2),运行时间约为 TLE。 二、双指针(Best Solution
阅读全文
摘要:题目 URL:https://leetcode.com/problems/regular-expression-matching 解法 动态规划。 '*' 匹配包括三种情况: 初始状态也需要考虑: dp[0][0] 肯定为 true。 dp[0][i], i ∈ {2, 4, 6, ······,
阅读全文
摘要:题目 URL:https://leetcode.com/problems/palindrome-number 解法 想办法取出回文数左右两边的数。 首先取右面的数,可以通过“取余”方法取出(LeetCode - 7 - Reverse Integer)。仔细想一下,右面的数取出来了,左面的数自然就呈
阅读全文
摘要:题目 URL:https://leetcode.com/problems/string-to-integer-atoi 解法 很简单。注意特殊情况,按照如下顺序处理: 这题和上题一样坑爹的是,Leetcode 又没有说异常该如何输出,具体如何输出在上面处理都有说明。 按位计算,时间复杂度O(n),运
阅读全文
摘要:题目 URL:https://leetcode.com/problems/reverse-integer 解法 这个题目是极其简单的,对于数 x,每次对 10 取余保存为结果,之后 x 除以 10,若 x 不为0,则结果乘 10,继续取余。不过,注意一些会产生异常的条件: 溢出,包括正数溢出、负数溢
阅读全文
摘要:题目 URL:https://leetcode.com/problems/zigzag-conversion 解法 一、程序员 对于一个程序员来说,肯定是想模拟 ZigZag 的数组,再根据 ZigZag 的位置一行一行的输出。 ZigZag 模拟很简单,首先得出行数和列数,之后模拟 ZigZag
阅读全文
摘要:题目 URL:https://leetcode.com/problems/longest-palindromic-substring 解法 一、循环搜索 对于每一个字符,往后搜索,遇到相同字符,开始判断是否回文串,若是回文串则与当前最长回文串的长度比较,若更长,则更新最长回文串。 显然是三层循环:第
阅读全文
摘要:题目 URL:https://leetcode.com/problems/median-of-two-sorted-arrays/ 解法 二分法。 总的思想是将 2 个数组用 2 个指针“整体”二分。具体来说,调整 2 个二分指针的位置,达到: 左半部分 size = 右半部分 size (2 个数
阅读全文
摘要:题目 URL:https://leetcode.com/problems/longest-substring-without-repeating-characters 解法 一、Hash by HashMap 核心思想是,判断字符是否在 HashMap 中,如果是,那么计算当前不重复字串的长度,和之
阅读全文
摘要:题目 URL:https://leetcode.com/problems/add-two-numbers/ 解法 没什么特殊的解法,按位相加即可。 注意点: 1、l1 和 l2 不一样长。 2、最终的进位。 单层循环,时间复杂度O(max(l1.length, l2.length)),运行时间约为
阅读全文
摘要:题目 URL:https://leetcode.com/problems/two-sum/ 解法 一、暴力破解 想不到任何方法的时候这是最好的方法。先做起来,再思考如何优化。 具体而言,有等式 target = a + b,第一个循环确定 a,第二个循环 a 的右面搜索 b,搜索到了就返回。 暴力破
阅读全文

浙公网安备 33010602011771号