- 博客(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
99
原创 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
65
原创 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
69
原创 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
132
原创 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
128
原创 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
121
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
50
原创 leetcode58题——字符串最后一个单词的长度
题目描述给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的最大子字符串。解题思路:首先利用split()函数,将字符串按空格进行分隔,会得到一个列表,再使用reverse()函数将列表转置,如此一来,列表的第一项即是我们要找的单词,最后使用for循环,输出列表第一项的字母个数。class Solution:
2020-11-10 20:15:56
65
原创 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
130
1
原创 leetcode13题——罗马数字转整数
题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情
2020-11-08 11:15:15
104
原创 LeetCode1题——两数之和之两种解法
题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定nums=[2,7,11,15],target=9,因为nums[0]+nums[1]=9,所以返回[0,1]和与其相对应的数值2,7。代码from typing import Listclass Solution: def twoSum(self, nums: List[int
2020-11-07 20:41:26
93
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人