美文网首页
每日Leetcode—算法(8)

每日Leetcode—算法(8)

作者: Chuck_Wu | 来源:发表于2019-05-02 17:32 被阅读0次

69.x的平方根

计算并返回 x 的平方根,其中 x 是非负整数。
由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。

输入: 8,输出: 2
说明: 8 的平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。

算法一:

def mySqrt(self, x: int) -> int:
    if x == 0:
        return 0
    if x == 1:
        return 1
    for i in range(2,x+1):
        if i**2<=x and (i+1)**2>x:
            a = i
        else:
            return a

分析:该方法使用for循环进行查找,效率非常低

算法二:

def mySqrt(self, x: int) -> int:
    if x == 0:
        return 0
    if x == 1:
        return 1
    h = x
    l = 0
    while l<h:
        m = (l + h)//2
        if m**2<=x and (m+1)**2>x:
            return m
        if m**2 > x:
            h = m
        if m**2 < x:
            l = m

分析:因为结果会从1,2,3...进行顺序查找,所以直接使用二分法。

70. 爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

输入: 2,输出: 2
解释: 有两种方法可以爬到楼顶。

  1. 1 阶 + 1 阶
  2. 2 阶

输入: 3,输出: 3
解释: 有三种方法可以爬到楼顶。

  1. 1 阶 + 1 阶 + 1 阶
  2. 1 阶 + 2 阶
  3. 2 阶 + 1 阶

算法:

def climbStairs(self, n: int) -> int:
    res = [0]*(n+1)
    res[0] = 1
    res[1] = 1
    for i in range(2,n+1):
        res[i] = res[i-2] + res[i-1]
    return res[n]

分析:该问题是除了兔子问题之外,另一个满足斐波那契数列的问题,所以直接使用即可求出。

相关文章

  • Swap Nodes in Pairs

    标签: C++ 算法 LeetCode 链表 每日算法——leetcode系列 问题 Swap Nodes in ...

  • Combination Sum II

    标签: C++ 算法 LeetCode DFS 每日算法——leetcode系列 问题 Combinatio...

  • Divide Two Integers

    标签: C++ 算法 LeetCode 每日算法——leetcode系列 问题 Divide Two Integ...

  • First Missing Positive

    标签: C++ 算法 LeetCode 数组 每日算法——leetcode系列 问题 First Missing...

  • Valid Sudoku

    Valid Sudoku 标签: C++ 算法 LeetCode 每日算法——leetcode系列 问题 Val...

  • Next Permutation

    标签: C++ 算法 LeetCode 数组 每日算法——leetcode系列 问题 Next Permuta...

  • Trapping Rain Water

    标签: C++ 算法 LeetCode 数组 每日算法——leetcode系列 问题 Trapping Rain...

  • Combination Sum

    标签: C++ 算法 LeetCode 数组 DFS 每日算法——leetcode系列 问题 Combinat...

  • Remove Nth Node From End of List

    标签: C++ 算法 LeetCode 链表 每日算法——leetcode系列 问题 Remove Nth Nod...

  • Merge k Sorted Lists

    标签: C++ 算法 LeetCode 链表 每日算法——leetcode系列 问题 Merge Two Sort...

网友评论

      本文标题:每日Leetcode—算法(8)

      本文链接:https://www.haomeiwen.com/subject/ddgnnqtx.html