【Leetcode 345. 反转字符串中的元音字母 By Python】教程文章相关的互联网学习教程文章

leetcode 287.寻找重复数(python)【代码】

leetcode 287.寻找重复数(python) 给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。 示例 1: 输入: [1,3,4,2,2] 输出: 2示例 2: 输入: [3,1,3,4,2] 输出: 3说明: 不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2) 。数组中只有一个重复的数字,但它可能不止重复出现一次。 快慢指针...

python-leetcode9回文数【代码】【图】

题目 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。 进阶: 你能不将整数转为字符串来解决这个问题吗? 来源:力扣(LeetCode) 链接:https://leetcode-c...

leetcode--python--1365【代码】【图】

1365. 有多少小于当前数字的数字 给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。 以数组形式返回答案 限制:2 <= nums.length <= 500;0 <= nums[i] <= 100 class Solution(object):def smallerNumbersThanCurrent(self, nums):""":type nums: List[int]:rtype: List[int]"""result ...

[Leetcode]组合总和扩展-Python递归【代码】

[Leetcode]组合总和扩展 题目描述 假设"number"由不等于0的数字组成的数组,而sum_of_digits是一个严格的正整数。通过可能删除“number”中的一些数字,可以得到一个解决方案。(保持其余数字的顺序)使的和剩下的数字等于"sum_of_digits"。这些解决方案是从小到大列出的,没有重复。 说明: 所有数字(包括 sum_of_digitst)都是正整数。必须保持其余数字的顺序,使得剩下的数字等于"sum_of_digits"示例如下: >>> subnumbers_whose...

python 元祖-列表-字典-排序及其在leetcode题目中的应用【代码】

目录 Python中元祖-列表以及字典的创建和介绍 元祖: 列表: 字典: Python中内置排序函数sort()以及sorted()函数介绍 使用sort排序 使用sorted()排序 sort()以及sorted()函数中key参数的应用 对复杂的元组排序 根据字典的value排序 leetcode中的应用 242. 有效的字母异位词 解决方案Python中元祖-列表以及字典的创建和介绍元祖: 在Python中用小括号()创建 ()代表tuple元祖数据类型,元祖是一种不可变序列。创建方法很简单,...

LeetCode题解(0710):黑名单中的随机数(Python)【代码】

题目:原题链接(困难) 标签:哈希表、随机、排序、二分查找 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(BlogB)O(BlogB)O(BlogB)O(B)O(B)O(B)364ms (83.01%)Ans 2 (Python)Ans 3 (Python) 解法一(黑名单映射): class Solution:def __init__(self, N: int, blacklist: List[int]):self.black = {}black_set = set(blacklist)last = N - 1# 保证黑名单连续数字不相同(如果黑名单超过白名单长度则为-1,-2,仍然会在白名单...

LeetCode题解(0718):最长重复子数组(Python)【代码】

题目:原题链接(中等) 标签:二分查找、哈希表、数组、动态规划 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O((N1+N2)N1log(min(N1,N2)))O((N1+N2)N1log(min(N1,N2)))O((N1+N2)N1log(min(N1,N2)))O(N12)O(N1^2)O(N12)5964ms (28%)Ans 2 (Python)Ans 3 (Python) 解法一(二分查找): class Solution:def findLength(self, A: List[int], B: List[int]) -> int:def check(v):hashmap = set()for i in range(len(A) - v + 1):...

LeetCode题解(0781):森林中的兔子(Python)【代码】

题目:原题链接(中等) 标签:哈希表、数学 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(N)O(N)O(N)O(N)O(N)O(N)48ms (90.91%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def numRabbits(self, answers: List[int]) -> int:count = collections.Counter(answers)ans = 0for k, v in count.items():ans += math.ceil(v / (k + 1)) * (k + 1)return ans

LeetCode题解(0930):和相同的二元子数组(Python)【代码】

题目:原题链接(中等) 标签:哈希表、双指针 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(N)O(N)O(N)O(N)O(N)O(N)304ms (81.07%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def numSubarraysWithSum(self, A: List[int], S: int) -> int:count = collections.Counter({0: 1})ans = 0last = 0for n in A:last += nif last - S in count:ans += count[last - S]count[last] += 1return ans

LeetCode-Python-删除链表解题思路【图】

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 image.png 解题思路:使用双指针,快指针与慢指针的间隔为n; 涉及到最后要删除慢指针的节点,为了方便,先开辟一个node为pre,pre的next指向head,快慢指针均从pre开始遍历; 先由快指针向前走n步,再快慢指针同时向前走,直到快指针的next指向空; 那么此时慢指针的next即为要删除的节点,此时令slow.next=slow.next.next即可。Python3代码:# Definition fo...

【LeetCode&python】915. 分割数组【代码】

题目 给定一个数组 A,将其划分为两个不相交(没有公共元素)的连续子数组 left 和 right, 使得: left 中的每个元素都小于或等于 right 中的每个元素。 left 和 right 都是非空的。 left 要尽可能小。 在完成这样的分组后返回 left 的长度。可以保证存在这样的划分方法。示例 1: 输入:[5,0,3,8,6] 输出:3 解释:left = [5,0,3],right = [8,6] 示例 2: 输入:[1,1,1,0,6,12] 输出:4 解释:left = [1,1,1,0],right = [6,12]...

LeetCode 40. 组合总和 II | Python【代码】【图】

40. 组合总和 II题目来源:力扣(LeetCode)https://leetcode-cn.com/problems/combination-sum-ii 题目给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明:所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。示例 1: 输入: candidates = [10,1,2,7,6,1,5], target = 8, 所求解集为: [[1, 7],[1, 2, 5],[2...

LeetCode 107. 二叉树的层次遍历 II | Python【代码】

107. 二叉树的层次遍历 II题目 题目来源:力扣(LeetCode)https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回其自底向上的层次遍历为: [[15,7],[9,20],[3] ]解题思路思路:广度优先搜索(BFS) 先看题目,题目要求返回...

【Leetcode】100 : 相同的树(Python)【代码】【图】

题目: 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 题目解析: 方法一: 这个题目很明显就可以用递归来做,有关树的题目用递归来做基本上是我们需要想到的首选!如果两个树是相同的,我们只需要比较其树根是相同的,同时递归调用比较树根的下一级子树是相同的,那么则可以得到整个树的结构是相同的,我自己的方法如下:# Definition for a binary t...

LeetCode 93. 复原IP地址 | Python【代码】【图】

93. 复原IP地址题目来源:力扣(LeetCode)https://leetcode-cn.com/problems/restore-ip-addresses 题目给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 . 分隔。 示例: 输入: "25525511135" 输出: ["255.255.11.135", "255.255.111.35"]解题思路思路: 回溯 先看题目,题目要求的是给定一个只包含数字的字符串,复原返回所有可能...