
leetcode-python-top100
龟速爬行中,2esay=1mid=0.5hard,1mid=1day
GreenPill
鹅厂打工人.如果你吹牛可以@我,想内推也可以@我
展开
-
leetcode日记:21. 合并两个有序链表
21. 合并两个有序链表题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例输入:1->2->4, 1->3->4输出:1->1->2->3->4->4题解定义一个头结点,一个last_node用来记录上一个节点.之后就是比较l1.val和l2.val的大小,小的就赋值给last_node.next,同时后移一位.移到最后没有后续节点了,整个last_node的后续就是未完的那个原创 2020-12-01 23:27:54 · 118 阅读 · 0 评论 -
leetcode日记:19. 删除链表的倒数第N个节点
19. 删除链表的倒数第N个节点题目给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?题解一看这题面,一次遍历,我直接掏出两个指针,一个用来记录终点,一个用来找到目标节点位置.另有两种情况需要额外处理下节点数为1的情况,这原创 2020-12-01 00:29:37 · 173 阅读 · 0 评论 -
leetcode代码日记10. 正则表达式匹配
每天下班了都要想一会这个题,今天终于自己能给出一个自己比较满意的答案,最好是能通过今天这题给出一个简单的方法论来.10. 正则表达式匹配题目给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。示例示例 1:输入:s = "aa" p = "a"输出:false解释:"a" 无法匹配 "aa" 整个字符串。示例 2:输原创 2020-11-30 01:26:20 · 155 阅读 · 0 评论 -
leetcode日记17. 电话号码的字母组合
17. 电话号码的字母组合题目给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。题解这题,有点简单,持续的往后加字符就行了.什么回溯不回溯的,说的太复杂了.def letterCombinat原创 2020-11-20 00:56:44 · 664 阅读 · 0 评论 -
leetcode日记: 15. 三数之和
15. 三数之和题目给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]解法1–终极三重循环+去重这题一看我以为是两数之和的翻版,不过hash我怎么也用不上.难受暴力解法就是三原创 2020-11-19 00:10:10 · 150 阅读 · 0 评论 -
leetcode日记: 11. 盛最多水的容器
11.盛最多水的容器题目给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49原创 2020-11-17 23:49:00 · 130 阅读 · 0 评论 -
leetcode日记:4. 寻找两个正序数组的中位数
题目寻找两个正序数组的中位数给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。进阶:你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗?实例示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1原创 2020-11-16 23:31:58 · 91 阅读 · 0 评论 -
leetcode日记:5. 最长回文子串
5. 最长回文子串题目:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"解法1-中间往两边法中间往两边法的思路很简单,就是说找到一个正确的核心起点,然后判断最近的左右是否满足条件,如果满足就把带上这两个点的当做新的中间.需要注意的是存在两种核心起点,1. 单个的字符 2. 相同的两个字符,而且这两种的判原创 2020-11-13 23:50:26 · 153 阅读 · 0 评论 -
leetcode日记:3. 无重复字符的最长子串
3. 无重复字符的最长子串题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pw原创 2020-11-11 23:55:10 · 351 阅读 · 0 评论 -
leetcode日记:2.两数相加
2.两数相加给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807解法:补齐法一开始没注意是链表,照着list做了一遍原创 2020-11-11 00:27:49 · 170 阅读 · 1 评论 -
1.两数之和+20.有效的括号
题目1 两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解法 1–双重循环遍历class Solution: def twoSum(self, nums: List原创 2020-11-10 00:04:36 · 156 阅读 · 0 评论