![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
Cris_Lee卡卡卡
https://github.com/lrs1353281004
展开
-
leetcode题解记录-743 网络延迟时间(python3)
题目743 网络延迟时间题目链接官方题解解题思路: Dijkstra算法代码记录class Solution: def networkDelayTime(self, times: List[List[int]], n: int, k: int) -> int: SEEN ={} UNSEEN = {i+1:float('inf') for i in range(n)} UNSEEN[k]=0 while len(SEEN)<n:原创 2021-08-03 14:43:05 · 372 阅读 · 0 评论 -
leetcode题解记录-29 两数相除(python3)
题目29 两数相除题目链接解题思路: 基于位运算实现,注意边界处理代码记录class Solution: def divide(self, dividend: int, divisor: int) -> int: MAX = 2147483648 flag = -1 if (dividend>0 and divisor<0) or (dividend<0 and divisor>0) else 1 ans = 0 shi原创 2021-07-28 17:26:53 · 258 阅读 · 0 评论 -
leetcode题解记录-399 除法求值(python3)
题目399 除法求值题目链接官方题解解题思路: 广度优先遍历代码记录class Solution: def calcEquation(self, equations: List[List[str]], values: List[float], queries: List[List[str]]) -> List[float]: from collections import defaultdict self.link_path=defaultdict(原创 2021-07-15 14:45:56 · 304 阅读 · 0 评论 -
leetcode题解记录-23 合并k个升序链表(python3)
题目23 合并k个升序链表题目链接官方题解代码记录from typing import Listclass ListNode: def __init__(self, val=0, next=None): self.val = val self.next = nextclass Solution: def resort(self,lists): lists = [n for n in lists if n] if l原创 2021-06-23 17:19:32 · 121 阅读 · 0 评论 -
leetcode题解记录-22 括号生成(python3)
题目22 括号生成题目链接官方题解题目描述:解题思路: 回溯法代码中 m 表示尚未使用的左括号,n表示尚未匹配右括号的左括号代码记录class Solution: def generateParenthesis(self, n: int) -> List[str]: def backprocess(m,n): if m==0 and n==0: combs.append(''.join(comb))原创 2021-06-22 17:01:34 · 133 阅读 · 0 评论 -
leetcode题解记录-74 搜索二维矩阵(python3)
题目74 搜索二维矩阵题目链接官方题解解题思路: 二分查找代码记录class Solution: def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: M = len(matrix) N = len(matrix[0]) left = 0 right = M*N-1 while left<=right: mid = (left+原创 2021-03-30 14:21:05 · 141 阅读 · 0 评论 -
leetcode题解记录-59螺旋矩阵 II(python3)
题目59螺旋矩阵 II题目链接官方题解代码记录class Solution: def generateMatrix(self, n: int) -> List[List[int]]: transfer={'right':'down','down':'left','left':'up','up':'right'} policy={'right':(0,1),'down':(1,0),'left':(0,-1),'up':(-1,0)} cnt=1原创 2021-03-16 14:06:16 · 131 阅读 · 0 评论 -
leetcode题解记录-227基本计算器 II(python3)
题目227基本计算器 II题目链接官方题解代码记录class Solution: def calculate(self, s: str) -> int: s=s.replace(' ','') import string digits=string.digits stack=[] pre_sign='+' cur=[] for i in range(len(s)): si=s[i] if si in digits: cur.append(s原创 2021-03-11 17:58:04 · 160 阅读 · 0 评论 -
leetcode题解记录-304二维区域和检索 - 矩阵不可变(python3)
题目304二维区域和检索 - 矩阵不可变题目链接官方题解代码记录class NumMatrix: def __init__(self, matrix: List[List[int]]): self.matrix=matrix if matrix: self.rows_num=len(matrix) self.cols_num=len(matrix[0]) self.sum=[[0 for i in range(self.cols_num+1)] for j in ran原创 2021-03-02 18:55:12 · 164 阅读 · 0 评论 -
leetcode题解记录-1052 爱生气的书店老板(python3)
题目1052 爱生气的书店老板题目链接官方题解解法思路: 滑动窗口代码记录class Solution: def maxSatisfied(self, customers: List[int], grumpy: List[int], X: int) -> int: base_cnt = 0 n = len(customers) for i in range(n): if grumpy[i]==0: base_cnt += cu原创 2021-02-23 11:17:27 · 127 阅读 · 0 评论 -
leetcode题解记录-766 托普利茨矩阵(python3)
题目766 托普利茨矩阵题目链接官方题解解法思路: 广度优先遍历 BFS代码记录class Solution: def isToeplitzMatrix(self, matrix: List[List[int]]) -> bool: m,n = len(matrix),len(matrix[0]) queue = [(0,n-1)] while queue: next_queue=[] values=[] for n原创 2021-02-22 17:24:31 · 118 阅读 · 0 评论 -
leetcode题解记录-1471 数组中的K个最强值(python3)
题目1471 数组中的K个最强值题目链接解法思路: 双指针代码记录class Solution: def getStrongest(self, arr: List[int], k: int) -> List[int]: arr.sort() m = arr[(len(arr)-1)//2] res=[] cnt=0 left=0 right=len(arr)-1 while cnt<k: if a原创 2021-02-18 17:04:18 · 106 阅读 · 0 评论 -
leetcode题解记录-995 K 连续位的最小翻转次数(python3)
题目995 K 连续位的最小翻转次数题目链接官方题解解法思路: 差分数组,滑动窗口代码记录#base method 基础方案,会超时class Solution: def minKBitFlips(self, A: List[int], K: int) -> int: res=0 for i in range(len(A)-K+1): if A[i]==0: for j in range(K): A[i+j]=1-A[原创 2021-02-18 16:33:25 · 116 阅读 · 0 评论 -
leetcode题解记录-567字符串的排列(python3)
题目字符串的排列题目链接官方题解解法思路: 滑动窗口代码记录class Solution: def checkInclusion(self, s1: str, s2: str) -> bool: if len(s1)>len(s2): return False from collections import Counter tgt_set,cur_set=Counter(),Counter() for s in s1: tgt_set[s]+=1 f原创 2021-02-10 10:22:29 · 177 阅读 · 0 评论 -
leetcode题解记录-978 最长湍流子数组(python3)
题目最长湍流子数组题目链接官方题解代码记录class Solution: def maxTurbulenceSize(self, arr: List[int]) -> int: res=1 cur_cnt=1 pre_flag=0 cur_flag=0 for i in range(1,len(arr)): cur_flag = 0 if arr[i]-arr[i-1]==0 else (arr[i]-arr[i-1])/abs(arr[i]-arr[i-1])原创 2021-02-08 15:04:50 · 85 阅读 · 0 评论 -
leetcode题解记录-1143最长公共子序列(python3)
题目最长公共子序列题目链接暂无官方题解,可参考维基百科,动态规划解法。代码记录class Solution: def longestCommonSubsequence(self, text1: str, text2: str) -> int: m,n = len(text1),len(text2) dp = [[0 for j in range(n+1)] for i in range(m+1)] for i in range(1,m+1):原创 2021-02-05 17:14:50 · 134 阅读 · 0 评论 -
leetcode题解记录-188买卖股票的最佳时机 IV(python3)
题目买卖股票的最佳时机 IV题目链接官方题解思路类似714买卖股票的最佳时机含手续费对储存的状态稍作修改:对于每个时间节点,存储不同剩余交易次数下已持有股票,或者未持有股票这两类情况下的最大利润。最终输出未持有股票情况下的最大利润即可。其中交易次数最大有效次数为: k = min(k,len(prices)//2)代码记录class Solution: def maxProfit(self, k: int, prices: List[int]) -> int: k原创 2020-12-28 20:20:04 · 222 阅读 · 1 评论 -
leetcode题解记录-455分发饼干(python3)
题目分发饼干题目链接官方题解原创 2020-12-25 17:09:42 · 161 阅读 · 0 评论 -
leetcode题解记录-135分发糖果(python3)
题目分发糖果题目链接官方题解代码记录class Solution: def candy(self, ratings: List[int]) -> int: total_cnt=0 single_cnt=1 import math N=len(ratings) ratings=[math.inf]+ratings+[math.inf] left=1 for i in range(1,N+1): if ratings[i]>ratings[i+1]:原创 2020-12-25 13:06:39 · 171 阅读 · 0 评论 -
leetcode题解记录-714买卖股票的最佳时机含手续费(python3)
题目买卖股票的最佳时机含手续费题目链接官方题解对于每个时间节点,只有两种状态:已持有股票,或者未持有股票,分别维护这两种情况下的最大利润。最终输出未持有股票情况下的利润即可。代码记录class Solution: def maxProfit(self, prices: List[int], fee: int) -> int: import math profit_buy=-math.inf profit_nobuy=0 for i in range(len(prices)原创 2020-12-17 17:01:26 · 163 阅读 · 0 评论 -
leetcode题解记录-208实现 Trie (前缀树)(python3)
题目实现 Trie (前缀树)题目链接官方题解这篇博客对前缀树介绍的比较清晰,建议阅读。代码记录class trienode: def __init__(self): self.is_key_word=False self.next=[None for i in range(26)]class Trie: def __init__(self): """ Initialize your data structure原创 2020-12-15 16:42:03 · 86 阅读 · 0 评论 -
leetcode题解记录-452用最少数量的箭引爆气球(python3)
题目用最少数量的箭引爆气球题目链接官方题解代码记录class Solution: def findMinArrowShots(self, points: List[List[int]]) -> int: points.sort(key=lambda x:x[0]) res=0 import math left_flag =-math.inf right_flag =-math.inf for point in points原创 2020-11-24 15:39:08 · 160 阅读 · 0 评论 -
leetcode题解记录-406根据身高重建队列(python3)
题目根据身高重建队列题目链接官方题解代码记录方法一class Solution: def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]: people.sort(key=lambda x:x[0]-1e-8*x[1]) people_num=len(people) empty_list=[i for i in range(people_num)] res=原创 2020-11-16 20:06:49 · 164 阅读 · 0 评论 -
leetcode题解记录-922按奇偶排序数组 II(C++)
题目按奇偶排序数组 II题目链接官方题解关键词双指针代码记录方法二 双指针#include <vector>#include <iostream>class Solution {public: std::vector<int> sortArrayByParityII(std::vector<int>& A) { int len=A.size(); int odd=1; for (int原创 2020-11-12 16:32:46 · 106 阅读 · 0 评论 -
leetcode题解记录-752打开转盘锁(python3)
题目打开转盘锁题目链接官方题解关键词广度优先遍历(BFS)代码记录BFSclass Solution: def __init__(self): import math self.min_route=math.inf self.seen={} def openLock(self, deadends: List[str], target: str) -> int: if '0000' in deadends: return -1 import math d原创 2020-10-28 16:20:51 · 232 阅读 · 0 评论 -
leetcode题解记录-144二叉树的前序遍历(python3)
题目二叉树的前序遍历题目链接官方题解关键词二叉树,递归,栈代码记录方法一 递归# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution:原创 2020-10-28 11:05:23 · 141 阅读 · 0 评论 -
leetcode题解记录-200岛屿数量(python3)
题目岛屿数量题目链接官方题解关键词队列,广度优先搜索代码记录class Solution: def numIslands(self, grid: List[List[str]]) -> int: from collections import deque m,n = len(grid),len(grid[0]) visited={} res=0 for i in range(m): for j in range(n):原创 2020-10-22 16:40:04 · 234 阅读 · 0 评论 -
leetcode题解记录-763划分字母区间(python3)
题目划分字母区间题目链接官方题解关键词双指针,贪心算法代码记录下面的实现其实和官方解法类似,只是官方题解是记录字符最后出现的位置,我这里是是通过记录字符出现的次数。class Solution: def partitionLabels(self, S: str) -> List[int]: total_dic={} for i in range(len(S)): if S[i] in total_dic: total_dic[S[i原创 2020-10-22 14:52:05 · 127 阅读 · 0 评论 -
leetcode题解记录-925长按键入(python3)
题目长按键入题目链接官方题解关键词双指针代码记录class Solution: def isLongPressedName(self, name: str, typed: str) -> bool: i=0 j=0 while j<len(typed): if i<len(name) and name[i]==typed[j]: i +=1 j +=1 elif j>0 and t原创 2020-10-21 20:06:45 · 106 阅读 · 1 评论 -
leetcode题解记录-622设计循环队列(python3)
题目设计循环队列题目链接官方题解关键词队列,数组代码记录class MyCircularQueue: def __init__(self, k: int): """ Initialize your data structure here. Set the size of the queue to be k. """ self.queue=[None for i in range(k)] self.head原创 2020-10-21 18:51:57 · 213 阅读 · 1 评论 -
leetcode题解记录-61旋转链表(python3)
题目旋转链表题目链接官方题解关键词链表代码记录# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def rotateRight(self, head: ListNode, k: int) -> ListNode: if n原创 2020-10-20 16:21:56 · 120 阅读 · 0 评论 -
leetcode题解记录-138复制带随机指针的链表(python3)
题目复制带随机指针的链表题目链接官方题解关键词链表代码记录"""# Definition for a Node.class Node: def __init__(self, x: int, next: 'Node' = None, random: 'Node' = None): self.val = int(x) self.next = next self.random = random"""class Solution:原创 2020-10-20 11:21:44 · 132 阅读 · 0 评论 -
leetcode题解记录-844比较含退格的字符串(python3)
题目比较含退格的字符串题目链接官方题解关键词字符串,双指针代码记录方法一 重构字符串两个字符串长度分别为N,M时间复杂度O(N+M),空间复杂度O(N+M)class Solution: def backspaceCompare(self, S: str, T: str) -> bool: def transfer_str(s): res=[] for i in range(len(s)): cur=s[i]原创 2020-10-19 17:16:07 · 143 阅读 · 0 评论 -
leetcode题解记录-430扁平化多级双向链表(python3)
题目比较含退格的字符串题目链接官方题解关键词字符串,双指针代码记录方法一 重构字符串时间复杂度O(N+M),空间复杂度O(N+M)class Solution: def backspaceCompare(self, S: str, T: str) -> bool: def transfer_str(s): res=[] for i in range(len(s)): cur=s[i] if cur !='#':原创 2020-10-19 14:26:43 · 139 阅读 · 0 评论 -
leetcode题解记录-21合并两个有序链表(python3)
题目合并两个有序链表题目链接官方题解关键词链表代码记录# Definition for singly-linked list.class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = nextclass Solution: def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode: import原创 2020-10-16 19:29:00 · 164 阅读 · 0 评论 -
leetcode题解记录-707设计链表(python3)
题目设计链表题目链接官方题解关键词单链表,双链表代码记录方法一 单链表class ListNode: def __init__(self,val): self.val=val self.next=Noneclass MyLinkedList: def __init__(self): """ Initialize your data structure here. """ sel原创 2020-10-16 17:21:08 · 300 阅读 · 0 评论 -
leetcode题解记录-977有序数组的平方(python3)
题目有序数组的平方题目链接官方题解关键词单调栈代码记录此处记录一下单调栈的写法,与官方题解方法不同。class Solution: def sortedSquares(self, A: List[int]) -> List[int]: stack=[] res=[] for n in A: if not stack: stack.append(n) else: if abs(n)<=abs(原创 2020-10-16 14:03:58 · 138 阅读 · 0 评论 -
leetcode题解记录-234回文链表(python3)
题目回文链表题目链接官方题解关键词链表代码记录此解法时间复杂度O(n),空间复杂度O(1)。# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def isPalindrome(self, head: ListNode) -> bo原创 2020-10-15 20:30:16 · 176 阅读 · 0 评论 -
leetcode题解记录-328奇偶链表(python3)
题目奇偶链表题目链接官方题解关键词链表代码记录# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def oddEvenList(self, head: ListNode) -> ListNode:原创 2020-10-15 17:07:23 · 103 阅读 · 0 评论 -
leetcode题解记录-116填充每个节点的下一个右侧节点指针(python3)
题目填充每个节点的下一个右侧节点指针题目链接官方题解关键词完美二叉树,层次遍历代码记录方法一 层次遍历"""# Definition for a Node.class Node: def __init__(self, val: int = 0, left: 'Node' = None, right: 'Node' = None, next: 'Node' = None): self.val = val self.left = left原创 2020-10-15 15:49:41 · 162 阅读 · 0 评论