
Leetcode
文章平均质量分 58
愉贵妃珂里叶特氏海兰
日拱一卒无有尽,功不唐捐终入海
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
NC 链表相关 - 3,4,53
NC4. 判断链表是否有环题目描述难度 的⭐判断给定的链表中是否有环。如果有环则返回true,否则返回false。你能给出空间复杂度为O(1)的解法么?思路使用快指针、慢指针方法,快指针一次移动两格,慢指针一次移动一格,总之,如果有环的话,它俩早晚有一天会碰上。class Solution {public: bool hasCycle(ListNode *head) { ListNode *slow = head; ListNode *fast = h原创 2021-04-23 22:29:23 · 137 阅读 · 0 评论 -
NC78 反转列表& 61 两数之和 & 127最长公共子串
NC 78 反转列表????题目描述输入一个链表,反转链表后,输出新链表的表头。难度 ⭐示例1输入{1,2,3}返回值 {3,2,1}????思路使用迭代法,新建一个新列表,然后每次都像那个列表中插入即可。复杂度O(n).# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution原创 2021-04-20 21:01:43 · 206 阅读 · 0 评论 -
leetcode HOT 21&148&236
Leetcode 21. 合并两个有序链表难度 ⭐将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。思路当两个链表都非空时,选链表头最小的那个添加到辅助链表中;当有一个链表为空,另一个链表非空的时候,直接一股脑塞进辅助链表。# Definition for singly-linked list.# class ListNode(object):# def __init__(self, val=0, next=None):#原创 2021-04-17 22:22:03 · 152 阅读 · 0 评论 -
leetcode 29 ~ 39
Leetcode 29⭐⭐题目描述Given two integers dividend and divisor, divide two integers without using multiplication, division, and mod operator.Return the quotient after dividing dividend by divisor.The integer division should truncate toward zero, which means原创 2021-04-15 21:01:39 · 256 阅读 · 0 评论 -
Leetcode - 全排列
题目描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = “23”输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]class Solution(object): num2str = {2: "abc", 3: "def", 4: "ghi", 5: "jkl", 6: "mno", 7:原创 2021-04-07 19:15:37 · 189 阅读 · 0 评论 -
Leetcode 5. 最长回文子串 & 20.有效的括号
难度:medium题目描述给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。思路由于是找回文串,可以采用中心扩展的方法,遍历每个中心点位置,尽可能大的向左右两边扩展。最后取一个最好的中心点即可。class Solution(object): def longestPalindrome(self, s): """ :type s: str :原创 2021-04-07 16:09:32 · 160 阅读 · 1 评论 -
NC 41. 无重复字符的最长子串 & NC19. 子数组的最大累加和
????题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例:输入: s = “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3???? 思路❗ 双指针class Solution(object): def lengthOfLongestSubstring(self, s): """ :type s: str :rtype: int """原创 2021-04-06 19:12:53 · 160 阅读 · 2 评论 -
Leetcode 2. 两数相加
难度 ⭐⭐???? 题目描述给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。????示例输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.????????思路既然是逆序的,那么正好符合我们计算加法时的规律。同时考虑进位即可。class原创 2021-04-06 18:34:41 · 116 阅读 · 0 评论 -
leetcode - 二叉搜索树相关
1. 剑指 Offer 54. 二叉搜索树的第k大节点难度 ⭐???? 题目描述给定一棵二叉搜索树,请找出其中第k大的节点。???? 示例输入: root = [3,1,4,null,2], k = 13/\ 1 4\ 2输出: 4分析:二叉搜索树的一个性质就是,如果按照中序遍历之,一定是从小到大排序的。所以,可以利用这个性质来求第k大。class Solution {public: int kthLargest(TreeNode* root, int k)原创 2021-03-27 23:00:02 · 178 阅读 · 0 评论 -
Leetcode 547. 省份数量 (连通块数量,DFS)
1. 题目描述有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数量。示例:输入:isCo原创 2021-03-18 22:09:04 · 248 阅读 · 0 评论 -
Leetcode 200. 岛屿数量(连通块数量,DFS)
1. 题目描述给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例:输入:grid = [[“1”,“1”,“1”,“1”,“0”],[“1”,“1”,“0”,“1”,“0”],[“1”,“1”,“0”,“0”,“0”],[“0”,“0”,“0”,“0”,“0”]]输出:1示例 2:输入:grid = [[“1”,“原创 2021-03-18 20:23:25 · 263 阅读 · 0 评论 -
Leetcode 872. 叶子相似的树 (DFS)
1. 题目描述请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。举个例子,如上图所示,给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。如果有两棵二叉树的叶值序列相同,那么我们就认为它们是 叶相似 的。如果给定的两个头结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。示例:输入:root1 = [3,5,1,6,2,9,8,null,null,7,4], root2 = [3,5,1,6,7,4,2,nu原创 2021-03-18 19:53:32 · 135 阅读 · 0 评论 -
Leetcode Hot 64 - 最小路径和(DP)
1.题目描述:给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例 1:输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输出:7解释:因为路径 1→3→1→1→1 的总和最小。提示:m == grid.lengthn == grid[i].length1 <= m, n <= 2000 <= grid[i][j] <= 1002.题解原创 2021-03-18 17:47:28 · 110 阅读 · 0 评论