算法练习
python庄园丁
这个作者很懒,什么都没留下…
展开
-
187. 重复的DNA序列
所有 DNA 都由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。编写一个函数来查找 DNA 分子中所有出现超过一次的 10 个字母长的序列(子串)。分析:统计次数一般用字典,字母序列可以用切片解决class Solution: def findRepeatedDnaSequ...原创 2019-10-17 19:16:27 · 262 阅读 · 0 评论 -
1207. 独一无二的出现次数
给你一个整数数组arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回true;否则返回 false。思路:将改数组中的元素出现个数统计出来, 形成一个列表.利用集合无重复性解决问题class Solution: def uniqueOccurrences(self, arr: List[int]) -> bool: ...原创 2019-10-17 18:50:45 · 221 阅读 · 0 评论 -
1089. 复写零
给你一个长度固定的整数数组arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意:请不要在超过该数组长度的位置写入元素。思路:利用while循环遍历数组,遇到0直接插入0,然后在弹出一个元素。class Solution: def duplicateZeros(self, arr: List[int]) -> None: """ ...原创 2019-10-17 18:46:00 · 153 阅读 · 0 评论 -
1046. 最后一块石头的重量
有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块最重的石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎; 如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有...原创 2019-10-17 18:37:57 · 178 阅读 · 0 评论 -
884. 两句话中的不常见单词
给定两个句子 A 和 B 。 (句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。返回所有不常用单词的列表。您可以按任何顺序返回列表。思路:利用split()将字符串转换成列表,合并两个列表,如果元素只有1个,就是满足要求的class Solution: def unco...原创 2019-10-17 18:30:20 · 155 阅读 · 0 评论 -
50. Pow(x, n)
实现pow(x,n),即计算 x 的 n 次幂函数。思路:最容易想到的就是利用定义一个一个乘上去,还有就是利用递归,我用的就是递归,代码如下class Solution: def myPow(self, x: float, n: int) -> float: if n==1: return x else: ...原创 2019-10-17 11:07:45 · 250 阅读 · 1 评论 -
287. 寻找重复数
给定一个包含n + 1 个整数的数组nums,其数字都在 1 到 n之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-the-duplicate-number著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...原创 2019-10-17 11:00:36 · 116 阅读 · 0 评论 -
977. 有序数组的平方
给定一个按非递减顺序排序的整数数组A,返回每个数字的平方组成的新数组,要求也按非递减顺序排最简单的思路:遍历数组获得每个数的平方,在排序class Solution: def sortedSquares(self, A: List[int]) -> List[int]: B=[] for i in A: ...原创 2019-10-17 10:37:08 · 169 阅读 · 0 评论 -
力扣算法169:求众数
给定一个大小为n的数组,找到其中的众数。众数是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。class Solution: def majorityElement(self, nums: List[int]) -> int: newset=set(nums) for i in news...原创 2019-04-25 19:55:53 · 622 阅读 · 0 评论 -
力扣算法283-移动零
给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。思路:Python中丰富的列表方法对数组问题真是手到擒来。在数组中删除零,然后在列表尾部加上对应数量的零while True: #只有在数组中没有零的情况下跳出循环 if 0 not in nums:bre...原创 2019-04-25 19:42:45 · 414 阅读 · 0 评论