【[LeetCode&Python] Problem 868. Binary Gap】教程文章相关的互联网学习教程文章

LeetCode题解(1300):转变数组后最接近目标值的数组和(Python)【代码】

题目:原题链接(中等) 标签:二分查找、数组 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(NlogT)O(NlogT)O(NlogT)O(1)O(1)O(1)88ms (35.75%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def findBestValue(self, arr: List[int], target: int) -> int:left, right = 0, max(arr)while left < right:mid = (left + right) // 2res = sum([n if n <= mid else mid for n in arr])if res < target:left = mid + 1e...

LeetCode题解(1310):子数组异或查询(Python)【代码】

题目:原题链接(中等) 标签:位运算 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(N)O(N)O(N)O(N)O(N)O(N)516ms (10.17%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def xorQueries(self, arr: List[int], queries: List[List[int]]) -> List[int]:xor = [0]now = 0for num in arr:now ^= numxor.append(now)ans = []for l, r in queries:ans.append(xor[r + 1] ^ xor[l])return ans

LeetCode题解(1314):矩阵区域和(Python)【代码】

题目:原题链接(中等) 标签:数组、动态规划 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(MN)O(MN)O(MN)O(MN)O(MN)O(MN)1224ms (71.14%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def matrixBlockSum(self, mat: List[List[int]], K: int) -> List[List[int]]:m, n = len(mat), len(mat[0])# 计算前缀和prefix = [[0] * (n + 1) for _ in range(m + 1)]for i in range(1, m + 1):for j in range(1, n + 1):pr...

LeetCode题解(1318):或运算的最小翻转次数(Python)【代码】

题目:原题链接(中等) 标签:位运算 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(logN)O(logN)O(logN)O(1)O(1)O(1)44ms (33.33%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def minFlips(self, a: int, b: int, c: int) -> int:ans = 0length = max(a.bit_length(), b.bit_length(), c.bit_length())for i in range(length):if c & (1 << i):if not a & (1 << i) and not b & (1 << i):ans += 1else:if a & (1...

LeetCode题解(1319):连通网络的操作次数(Python)【代码】

题目:原题链接(中等) 标签:并查集、广度优先搜索、深度优先搜索 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(N)O(N)O(N)O(N)O(N)O(N)312ms (16.07%)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]d...

LeetCode题解(1329):将矩阵按对角线排序(Python)【代码】

题目:原题链接(中等) 标签:数组、排序 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(MNlog(min(M,N)))O(MNlog(min(M,N)))O(MNlog(min(M,N)))O(min(M,N))O(min(M,N))O(min(M,N))44ms (97.99%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def diagonalSort(self, mat: List[List[int]]) -> List[List[int]]:m, n = len(mat), len(mat[0])for d in range(-m + 1, n):if d < 0:i0, j0, num = -d, 0, min(m + d, n)...

0210leetcode刷题5道python【代码】【图】

88 题目描述; 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。 示例: 解答: class Solution:def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:"""Do not return anything, modify nums1 in-place instea...

python 练习题-取小正方形(LeetCode 221)【代码】

题目:给定一个矩阵,该矩阵只包含0和1,输出该矩阵中最大正方形区域的面积 如: 00011110 00001111 11101111最大是 3X3 的正方形,输出为 9 解题:1.参考相关博客(链接见下文) 先新建一个全为0,行数和列相等的列表 dp,设置一个最大值 maxSquare 1)第一行和第一列,如果等于1,则dp对应的值为1 2)除此之外,如果该值等于1,取该值左边、上边、左上中的最小值+1 该值为dp对应的值 3)取 maxSquare 和该值的最大值,赋值给 m...

【LeetCode】1423. 可获得的最大点数 Maximum Points You Can Obtain from Cards (Python)【代码】【图】

作者: 负雪明烛id: fuxuemingzhu公众号:每日算法题本文关键词:LeetCode,力扣,算法,算法题,滑动窗口,递归,前缀和,preSum,刷题群目录 题目描述解题思路递归preSum滑动窗口 刷题心得欢迎加入组织日期 题目地址:https://leetcode-cn.com/problems/maximum-points-you-can-obtain-from-cards/ 题目描述 几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末...

【leetcode-Python】-Tree-814. Binary Tree Pruning【代码】【图】

题目链接 https://leetcode.com/problems/binary-tree-pruning/solution/ 题目描述 给定一棵二叉树,树中每个节点的值要么为0,要么为1。从原二叉树中移除所有不包含1的子树后返回结果。 示例 输入:[1,0,1,0,0,0,1] 输出:[1,null,1,null,1] 解决思路 第一种方法是递归。递归函数的作用是判断以root为根节点的子树中是否含有1,如果没有1进行剪枝并返回False,如果含有1则返回True。递归结束条件是传入的节点root为空(递归到叶子...

力扣 leetcode 480. 滑动窗口中位数 (python)【代码】【图】

Topic中位数是有序序列最中间的那个数。如果序列的长度是偶数,则没有最中间的数;此时中位数是最中间的两个数的平均数。 例如: [2,3,4],中位数是 3 [2,3],中位数是 (2 + 3) / 2 = 2.5 给你一个数组 nums,有一个长度为 k 的窗口从最左端滑动到最右端。窗口中有 k 个数,每次窗口向右移动 1 位。你的任务是找出每次窗口移动后得到的新窗口中元素的中位数,并输出由它们组成的数组。Example给出 nums = [1,3,-1,-3,5,3,6,7],以及...

leetcode347 python

通过维护最小堆排序,使用heapq模块 一般使用规则:创建列表 heap = [] 函 数 描 述 heapq.heappush(heap, x) 将x压入堆中 heapq.he...

力扣 leetcode 888. 公平的糖果棒交换 (python)【代码】【图】

Topic爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 根糖果棒的大小,B[j] 是鲍勃拥有的第 j 根糖果棒的大小。 因为他们是朋友,所以他们想交换一根糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。) 返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1] 是 Bob 必须交换的糖果棒的大小。 如果有多个答案,你可以返回其中任何一个。保证答...

LeetCode题解(0909):蛇梯棋(Python)【代码】

题目:原题链接(中等) 标签:广度优先搜索 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(N)O(N)O(N)O(N)O(N)O(N)108ms (100.00%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def snakesAndLadders(self, board: List[List[int]]) -> int:m, n = len(board), len(board[0])# 将蛇形棋转换为列表lst = [0]reverse = Falsefor i in range(m - 1, -1, -1):if not reverse:lst.extend(board[i])else:lst.extend(rever...

LeetCode题解(0910):最小差值II(Python)【代码】

题目:原题链接(中等) 标签:贪心算法、数学 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(NlogN)O(NlogN)O(NlogN)O(logN)O(logN)O(logN)196ms (27.84%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def smallestRangeII(self, A: List[int], K: int) -> int:A.sort()min_val, max_val = A[0], A[-1]ans = max_val - min_valfor i in range(len(A) - 1):a, b = A[i], A[i + 1]ans = min(ans, max(max_val - K, a ...