leetcode刷题笔记(3)(python)
485 Max Consecutive Ones
题意:给出一串二进制数组,求数组中最长的连续1的个数
思路:遍历数组判断,然后将值添加到长度保存数组中,取保存数组最大值。本题要考虑输入的数组为[0],[1]的状况。
代码:`class Solution(object):
def findMaxConsecutiveOnes(self, nums): result=[] sums=0 for i in nums: if i==1: sums+=1 result.append(sums) if i==0: result.append(sums) sums=0 return max(tuple(result))
`
167 Two Sum II - Input array is sorted
题意:给出一个list,从list里面获取两个数。如果两个数合等于target则返回两个数的位置
思路:分别从左和右开始遍历数组,如果所得值大于target则右边的左移,小于target则左边的右移
代码:`class Solution(object):
def twoSum(self, numbers, target): L,R=0,len(numbers)-1 while R>L: if numbers[L]+numbers[R]==target: return [L+1,R+1] elif numbers[R]+numbers[L]>target: R-=1 else: L+=1
1 Two Sum
题意:给出一个无序数组,返回一个长度为2的数组,和等于target 思路:遍历数组求和 代码:`class Solution(object): def twoSum(self, nums, target): L=len(nums)-1 for i in range(L): for j in range(i+1,L+1): if nums[i]+nums[j]==target: return [i,j] ` 412. Fizz Buzz 题意:给出一个数n,返回一个从1到n的数组,如果被三整除替换Fizz被5整除替换为Buzz,如果被15整除替换FizzBuzz 思路:先判断是否被15整除然后再判断是否被3,5整除,顺带提示:本题要求返回值为string,最后要讲list里面所有值转换为string 代码:class Solution(object): def fizzBuzz(self, n): result=range(1,n+1) for i in range(1,n+1): if i%15==0: result[i-1]="FizzBuzz" elif i%3==0: result[i-1]="Fizz" elif i%5==0: result[i-1]="Buzz" return [str(i)for i in result]
575 Distribute Candies
题意:给定一个偶数个的数列,数列里面的数字视为不同种类的糖果,平分所有的糖果,求妹妹可以分到的最大糖果的种类数
思路:直接返回数组总长度/2(理想情况没有重复)与数组里面总共的糖果种类数中最小的一个值
代码:class Solution(object):
def distributeCandies(self, candies): return min(len(candies)/2,len(set(candies)))
相关推荐
CodeAsWind 2020-08-17
sunnyhappy0 2020-07-09
cxcxrs 2020-06-26
深思千年 2020-06-10
xmwang0 2020-06-01
fgleeldq 2020-05-27
ShiShuo 2020-05-16
文山羊 2020-05-08
tengyuan 2020-05-07
Leewoxinyiran 2020-05-06
sschencn 2020-05-04
vevoly 2020-05-04
一只码畜 2020-04-22
sulindong0 2020-03-09
GoatSucker 2020-02-24
sdwylry 2020-02-14