【[LeetCode&Python] Problem 104. Maximum Depth of Binary Tree】教程文章相关的互联网学习教程文章

leetcode3. 无重复字符的最长子串 Python【代码】

题目链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 输入: s = "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。暴力解法 双重循环遍历所有区间 滑动窗口法 class Solution(object):def lengthOfLongestSubstring(self, s):""":type s: str:rtype: int"""occ=set()s_len=len(s)point=-...

LeetCode腾讯精选练习(Python)-1【代码】【图】

2. 两数相加(中等) Python class Solution:def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:if not l1:return l2if not l2:return l1dummyhead = ListNode(-1)p = dummyheadf = 0while l1 or l2 or f:s = (l1.val if l1 else 0) + (l2.val if l2 else 0) + fnum = s%10f = s//10p.next = ListNode(num)p = p.nextl1 = l1.next if l1 else Nonel2 = l2.next if l2 else Nonereturn dummyhead.nextC++ class So...

python leetcode 每日打卡之1052【代码】

class Solution:def maxSatisfied(self, customers: List[int], grumpy: List[int], X: int) -> int:A = sum(customers)for i in range(len(customers)):if grumpy[i] == 0:customers[i] = 0res = sum(customers[:X])tmp = resfor i in range(len(customers) - X):tmp = tmp - customers[i] + customers[i + X]res = max(res , tmp)return A + res - sum(customers)

LeetCode题解(1386):安排电影院座位(Python)【代码】

题目:原题链接(中等) 标签:贪心算法、数组 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(R)O(R)O(R)O(R)O(R)O(R)144ms (41.56%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def maxNumberOfFamilies(self, n: int, reservedSeats: List[List[int]]) -> int:info = collections.defaultdict(list)for i, j in reservedSeats:info[i].append(j)ans = (10 // 4) * (n - len(info)) # 计算空行数量for i in info:...

LeetCode题解(1387):将整数按权重排序(Python)【代码】

题目:原题链接(中等) 标签:动态规划、图、排序 解法时间复杂度空间复杂度执行用时Ans 1 (Python)––172ms (94.41%)Ans 2 (Python)––84ms (97.37%)Ans 3 (Python) 解法一: class Solution:def getKth(self, lo: int, hi: int, k: int) -> int:dp = {1: 0}def dfs(x):if x not in dp:if x % 2 == 1:dp[x] = dfs(x * 3 + 1) + 1else:dp[x] = dfs(x // 2) + 1return dp[x]lst = []for i in range(lo, hi + 1):v = dfs(i)lst.ap...

leetcode 410. split-array-largest-sum 分割数组的最大值 python3【代码】

时间:2021-02-22 题目地址:https://leetcode-cn.com/problems/split-array-largest-sum/ 题目难度:Hard 题目描述: 给定一个非负整数数组 nums 和一个整数 m ,你需要将这个数组分成 m 个非空的连续子数组。 设计一个算法使得这 m 个子数组各自和的最大值最小。 示例 1: 输入:nums = [7,2,5,10,8], m = 2 输出:18 解释: 一共有四种方法将 nums 分割为 2 个子数组。 其中最好的方式是将其分为 [7,2,5] 和 [10,8] 。 因为此时...

Python3 实战 LeetCode 15.三数之和、18.四数之和,并扩展至 N 数之和【代码】

实战 LeetCode 15.三数之和、18.四数之和,并扩展至 N 数之和 题目描述 15.三数之和 链接:https://leetcode-cn.com/problems/3sum/ 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 18.四数之和 链接:https://leetcode-cn.com/problems/4sum/ 给定一个包含 n 个整数的数组 nums 和一个目标值 targ...

LeetCode题解(1361):验证二叉树(Python)【代码】

题目:原题链接(中等) 标签:并查集、图 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(N)O(N)O(N)O(N)O(N)O(N)156ms (11.67%)Ans 2 (Python)Ans 3 (Python) 解法一: class DSU1:def __init__(self, n: int):self._n = nself._array = [i for i in range(n)]self._size = [1] * ndef find(self, i: int):if self._array[i] != i:self._array[i] = self.find(self._array[i])return self._array[i]def union(self, i: int, j...

leetcode 704. binary-search 二分查找 python3【代码】

时间:2021-02-28 题目地址:https://leetcode-cn.com/problems/binary-search/ 题目难度:Easy 题目描述: 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1: 输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现在 nums 中并且下标为 4 示例 2: 输入: nums = [-1,0,3,5,9,12], target = 2 输出: -1 解释: 2 不存...

python leetcode 51-60【代码】

# 51 class Solution:def solveNQueens(self, n):board, ret = [['.'] * n for _ in range(n)], []self.dfs(board, n, 0, ret)return retdef dfs(self, board, n, row, ret):if row == n:ret.append(["".join(i) for i in board])returnfor i in range(n):if not self.canPlace(row, i, n, board):continueboard[row][i] = 'Q'self.dfs(board, n, row + 1, ret)board[row][i] = '.'def canPlace(self, row, col, n, board):for i ...

LeetCode100题之—4、一翻转二叉树(python)【代码】【图】

翻转二叉树 题目描述答案步骤详解题目描述答案 步骤详解 分为两个步骤 1)利用二叉树的先序遍历 2)每次遍历都调整左右孩子的位置 # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution(object):def reverse(self,root):TreeNode=root.leftroot.left=root...

Leetcode42:接雨水python实现【代码】

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 1.将容器补齐为阶梯状,计算面积 2.扣除容器部分面积pythonclass Solution:def trap(self, height: List[int]) -> int:n = len(height)if n <= 2: return 0temp = height[:]for i in range(1, n-1):temp[i] = min(max(height[: i+1]), max(height[i: ]))return sum(temp)-sum(height)

LeetCode题解(1288):删除被覆盖区间(Python)【代码】

题目:原题链接(中等) 标签:排序、贪心算法、扫描线算法 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(NlogN)O(NlogN)O(NlogN)O(logN)O(logN)O(logN)52ms (50.73%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def removeCoveredIntervals(self, intervals: List[List[int]]) -> int:intervals.sort(key=lambda x: (x[0], -x[1]))ans = len(intervals)most_right = 0for left, right in intervals:if right <= m...

LeetCode题解(1291):顺次数(Python)【代码】

题目:原题链接(中等) 标签:数组、回溯算法 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(1)O(1)O(1)O(1)O(1)O(1)28ms (98.59%)Ans 2 (Python)Ans 3 (Python) 解法一: nums = [] for i in range(2, 10):v1 = int("".join([str(j) for j in range(1, i + 1)]))v2 = int("1" * i)nums.append(v1)for _ in range(9 - i):v1 += v2nums.append(v1)class Solution:def sequentialDigits(self, low: int, high: int) -> List[int...

LeetCode题解(1292):元素和小于等于阈值的正方形的最大边长(Python)【代码】

题目:原题链接(中等) 标签:数组、二分查找 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(MN)O(MN)O(MN)O(MN)O(MN)O(MN)1092ms (57.48%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def maxSideLength(self, matrix: List[List[int]], threshold: int) -> int:m, n = len(matrix), len(matrix[0])# 计算前缀和prefix = [[0] * (n + 1) for _ in range(m + 1)]for i in range(1, m + 1):for j in range(1, n + 1...