LeetCode
文章平均质量分 74
已患月岛萤综合症
这个作者很懒,什么都没留下…
展开
-
LeetCode | Two Pointers
之前开了一版,再来一次看看可以用到什么程度了125. Valid Palindrome | Easyver1的思路很简单,check是不是字母数字,不是的话就移动指针;如果是的话就判断(字母统一转小写)是否是相同的char,不是的话就不是,是的话就移动指针继续check;class Solution: def isPalindrome(self, s: str) -> bool: left, right = 0, len(s)-1 def check.原创 2022-05-04 14:18:26 · 205 阅读 · 0 评论 -
LeetCode | Arrays & Hashing
217. Contains Duplicate | Easyclass Solution: def containDuplicate(self, nums): from collections import defaultdict hash = defaultdict(int) for num in nums: hash[num] += 1 if hash[num] == 2:原创 2022-05-02 19:10:05 · 192 阅读 · 0 评论 -
LeetCode | Backtracking
组合问题77. Combinationsclass Solution: def combine(self, n, k): res = [] def dfs(k, tmp, start): if k == 0: res.append(tmp.copy()) return for num in range(start, n + 1):原创 2022-04-30 20:36:39 · 71 阅读 · 0 评论 -
LeetCode | Stack
20. Valid Parentheses思路是左侧的符号压栈;每次遇到不是左侧的符号pop栈顶元素看一下匹不匹配(hashtable);注意几种特殊情况[: stack最后还有残余;]:起始元素是右侧元素;{(}):乱搭;class Solution: def isValid(self, s: str) : dic = {'(':')', '{':'}', '[':']'} stack = [] for char in s原创 2022-04-29 22:09:50 · 338 阅读 · 0 评论 -
LeetCode | Tree
2022-4-27哭唧唧,昨天做的记录没有保存,算啦1-d dp再做一遍好啦当加深记忆啦!当然要记得及时保存哈!226. Invert Binary Tree主要思路:dfs | 当前根节点的左右两个子孩子交换位置,问题就转化成了两个子孩子作为根节点的反转问题;version2为version1的简化版本,本质没啥区别;class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val原创 2022-04-27 20:20:20 · 53 阅读 · 0 评论 -
LeetCode | 1-D Dynamic Programming
70. Climbing Stairsdef climbStairs(n: int) -> int: ans = [0] * (n + 1) ans[0] = ans[1] = 1 for i in range(2, n + 1): ans[i] = ans[i - 1] + ans[i - 2] return ans[-1]def climbStairs2(n: int) -> int: step1, step2 = 1, 1原创 2022-04-25 22:03:43 · 273 阅读 · 0 评论 -
LeetCode | Linked List
23. Merge K Sorted Lists参考的neetcode~主要的思想是归并(本质是Divide and Conquer)主要思路:两两合并直到只剩下一个;(复用merge 2 sorted lists模块)时间复杂度:O(nlogk)O(nlogk)O(nlogk)学习的点:考虑边界;range的step的设置,之前都用的默认233;l2边界的设置,考虑奇数个的情况!# Definition for singly-linked list.# class List原创 2022-04-24 20:39:05 · 191 阅读 · 0 评论 -
Leetcode | 链表 [更新中]
206. 反转链表# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def reverseList(self, head: ListNode): # 1. 迭代 pre, cur = N原创 2022-04-15 20:43:40 · 269 阅读 · 0 评论 -
Leetcode | DFS [更新中]
200. 岛屿数量给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。ps:跟的花花酱~class Solution: def numIslands(self, grid: List[List[str]]) -> int: m, n = len(grid), len(grid[0]) ans原创 2022-04-14 21:45:34 · 197 阅读 · 0 评论 -
Leetcode | 回溯法 [更新中]
这里是引用组合77. 组合给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。ps:感谢代码随想录~class Solution: def combine(self, n: int, k: int) -> List[List[int]]: tmp = [] ans = [] def backtracking(n, k, start): if .原创 2022-04-14 21:44:26 · 42 阅读 · 0 评论 -
Leetcode | 双指针 | Two Pointers[更新中]
167 两数之和 II - 输入有序数组给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 。以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2原创 2022-04-13 22:45:32 · 231 阅读 · 0 评论 -
Leetcode | 滑动窗口 | Sliding Window |【更新中】
滑动窗口 | Sliding Window3. 无重复字符的最长子串 | longest substring without repeating characters题目描述:给定一个字符串s,请你找出其中不含有重复字符的 最长子串 的长度。输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。输入: s = “pw原创 2022-04-03 22:42:27 · 229 阅读 · 0 评论