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)))