• 动态规划_leetcode279(经典栈板)


    #coding=utf-8
    #点评:
    #递归思想加层次遍历,很经典的解题模板思想 20181220



    class Solution(object):
    def numSquares(self, n):
    """
    :type n: int
    :rtype: int
    """

    pair = (n,0)
    queue = []
    queue.append(pair)

    while queue:
    curPair = queue.pop(0)
    num = curPair[0]
    step = curPair[1]

    if num == 0:
    return step

    for i in range(1,num+1):
    if num - i *i >= 0:
    nextPair = (num-i*i,step+1)
    queue.append(nextPair)
    else:
    break

    class Solution2(object):
    def numSquares(self, n):
    """
    :type n: int
    :rtype: int
    """
    pair = (n, 0)
    queue = []
    queue.append(pair)

    #matrix = [[0 for i in range(3)] for i in range(3)]
    visit = [0 for i in range(n+1)]
    visit[n] = 1

    while queue:
    curPair = queue.pop(0)
    num = curPair[0]
    step = curPair[1]

    if num == 0:
    return step


    for i in range(1, num + 1):
    nextNum = num - i*i
    if nextNum >= 0:
    if visit[nextNum] == 0:
    nextPair = (nextNum, step + 1)
    queue.append(nextPair)
    visit[nextNum] = 1
    else:
    break


    class Solution3(object):
    def numSquares(self, n):
    """
    :type n: int
    :rtype: int
    """
    pair = (n, 0)
    queue = []
    queue.append(pair)

    #matrix = [[0 for i in range(3)] for i in range(3)]
    visit = [0 for i in range(n+1)]
    visit[n] = 1

    while queue:
    curPair = queue.pop(0)
    num = curPair[0]
    step = curPair[1]

    if num == 0:
    return step


    for i in range(1, num + 1):
    nextNum = num - i*i
    if nextNum >= 0:
    if visit[nextNum] == 0:

    if nextNum == 0:
    return step+1

    nextPair = (nextNum, step + 1)
    queue.append(nextPair)
    visit[nextNum] = 1
    else:
    break


    s = Solution2()

    print s.numSquares(13)
  • 相关阅读:
    谷歌SEO和百度SEO的区别
    如何在本地搭建网站(图文教程)
    企业级Web服务器安全主动防御措施
    如何在Ubuntu下搭建tftp服务器
    十条服务器端优化Web性能的技巧
    APP开发者如何从应用程序中赚钱?
    5个让你的404页面变的更加实用的技巧
    修改linux的MAC地址
    剪切文件或目录命令
    shell内置命令和外部命令的区别
  • 原文地址:https://www.cnblogs.com/lux-ace/p/10546545.html
Copyright © 2020-2023  润新知