Study Plan For Algorithms - Part35

1. x 的平方根
给定一个非负整数 x ,计算并返回 x 的 算术平方根 。

class Solution:
    def mySqrt(self, x: int) -> int:
        if x == 0:
            return 0
        left, right = 1, x
        while left <= right:
            mid = left + (right - left) // 2
            if mid * mid <= x < (mid + 1) * (mid + 1):
                return mid
            elif mid * mid < x:
                left = mid + 1
            else:
                right = mid - 1

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

class Solution:
    def climbStairs(self, n: int) -> int:
        if n <= 2:
            return n

        a, b = 1, 2
        for _ in range(3, n + 1):
            a, b = b, a + b

        return b
posted @ 2024-09-19 23:13  WindMay  阅读(1)  评论(0编辑  收藏  举报