资讯专栏INFORMATION COLUMN

leetcode刷题笔记(3)(python)

susheng / 1746人阅读

摘要:题意给出一串二进制数组,求数组中最长的连续的个数思路遍历数组判断,然后将值添加到长度保存数组中,取保存数组最大值。本题要考虑输入的数组为的状况。代码题意给出一个,从里面获取两个数。

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40882.html

相关文章

  • leetcode刷题笔记(2)(python)

    摘要:思路先用将字符串分割,再遍历,将字符串内每个单词进行翻转代码题意给定一个字符串,将字符串按照翻转,不翻转的规则进行处理。思路先将字符串分段,然后再根据段落进行处理最后将字符串输出。 344 Reverse String题意:给出一个字符串对字符串进行翻转(reverse)思路:直接使用切片函数进行翻转(网上看到的,具体怎么使用有点迷)[::-1]代码:`class Solution(...

    Guakin_Huang 评论0 收藏0
  • leetcode刷题笔记(1)(python

    摘要:最近时间准备面试,开始在上刷题了。思路将两个数用转换为二进制需要去除前面的,因为位数不同所以需要在前面补充一定位数的,然后将两个字符串遍历就可以直接得到汉明距离代码 最近时间准备面试,开始在leetcode上刷题了。于是在segmentfault上写点东西来记录下。可能会有各种弱智情况,望指出。 Array Partition I题意:这个题目看原题实在没有看懂,在网上找的翻译,大致...

    layman 评论0 收藏0
  • 【算法日积月累】0-写在前面的话

    摘要:现在发出来的版本,我重新使用了语言实现。其实我之前介绍的老师课程也大量参考和使用算法这本书上的思路和例题。看这本书主要是让我觉得算法可以以比较轻松的方式入门。剑指这本书主要用于准备算法面试,在网络上备受好评。 我是一个半路出家的程序员,在我刚开始从事编码工作的头几年,我没有接触过算法和数据结构,觉得它们是只会在我找工作的时候用得到的知识。尽管有很多人跟我说过算法和数据结构无比重要,我也...

    flybywind 评论0 收藏0
  • LeetCode天梯>Day031 验证二叉搜索树(递归+中序遍历) | 初级算法 | Pytho

    摘要:有效二叉搜索树定义如下节点的左子树只包含小于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。而我们二叉搜索树保证了左子树的节点的值均小于根节点的值,根节点的值均小于右子树的值,因此中序遍历以后得到的序列一定是升序序列。 ...

    Genng 评论0 收藏0

发表评论

0条评论

susheng

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<