- 博客(11)
- 收藏
- 关注
原创 leetcode第575题——分糖果
题目描叙 给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。 示例 1: 输入: candies = [1,1,2,2,3,3] 输出: 3 解析: 一共有三种种类的糖果,每一种都有两个。 最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,3]。这样使妹妹获得糖果的种类数最多。 示例 2 : 输入: candies = [1,1,2,3] 输出: 2 解析: 妹妹获得糖果[2,3],弟弟
2021-01-26 23:33:19 115
原创 leetcode第136题——只出现一次的数字
题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 思路 除了一个数字出现一次,其他都出现了两次,让我们找到出现一次的数。我们执行一次全员异或即可。 代码 class Solution: def singleNumber(self, nums: List[int]) -> int: single_number =
2021-01-19 22:37:55 107
原创 leetcode第100题——相同的树
题目描叙 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入: 1 1 / \ / 2 3 2 3 [1,2,3], [1,2,3] 输出: true 示例 2: 输入: 1 1 / 2 2 [1,2], [1,null,2] 输出: false 示
2021-01-15 23:18:27 103
原创 Leetcode第704题——二分查找
题目描述: 给定一个 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 不存在 nums 中因此返回-1 代码: class Sol
2020-12-29 20:42:46 163
原创 leetcode第258题——各位相加
题目描述: 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回2。 解题思路:将数字num转化为字符串,然后各位相加即可。当出现小于10的和时,直接输出和的结果。 class Solution: def addDigits(self, num: int) -> int: str1 = str(num) num
2020-12-22 23:44:15 146
原创 leetcode14题——最长公共前缀
题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例1: 输入:[“flower”, “flow”, “flight”] 输出:“fl” 示例2: 输入:[“dog”, “racecar”, “car”] 输出:" " 说明:所有输入只包含小写字母a-z。 代码 class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: if not strs:
2020-11-17 23:09:51 172 1
原创 leetcode第26题——删除排序数组中的重复项
题目描述 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 示例: 给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度5,并且原数组 nums 的前五个元素被修改为0,1,2,3,4。不需要考虑数组中超出新长度后面的元素。 解题思路: 从nums[0]开始,依次和后面的值作比较,当遍历出和某个数不相等时,则保持nums[0]
2020-11-13 12:15:52 67
原创 leetcode58题——字符串最后一个单词的长度
题目描述 给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。 如果不存在最后一个单词,请返回 0 。 说明:一个单词是指仅由字母组成、不包含任何空格字符的最大子字符串。 解题思路: 首先利用split()函数,将字符串按空格进行分隔,会得到一个列表,再使用reverse()函数将列表转置,如此一来,列表的第一项即是我们要找的单词,最后使用for循环,输出列表第一项的字母个数。 class Solution:
2020-11-10 20:15:56 87
原创 leetcode1013题——将数组分成和相等的三个部分
题目描述 给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false。 形式上,如果可以找出索引 i+1 < j 且满足 A[0] + A[1] + … + A[i] == A[i+1] + A[i+2] + … + A[j-1] == A[j] + A[j-1] + … + A[A.length - 1] 就可以将数组三等份。 示例1: 输入:[3, 3, 6, 5, -2, 2, 5, 1, -9, 4] 输出:True 解释:3+3=6=5-2+2+5+
2020-11-10 11:06:08 171 1
原创 leetcode13题——罗马数字转整数
题目描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情
2020-11-08 11:15:15 120
原创 LeetCode1题——两数之和之两种解法
题目描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定nums=[2,7,11,15],target=9,因为nums[0]+nums[1]=9,所以返回[0,1]和与其相对应的数值2,7。 代码 from typing import List class Solution: def twoSum(self, nums: List[int
2020-11-07 20:41:26 142
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人