leecode#x平方根#爬楼梯
题目描述:
给你一个非负整数 x ,计算并返回 x 的 算术平方根 。
由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。
注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。
分析:
法一「袖珍计算器算法」是一种用指数函数 exp 和对数函数 ln 代替平方根函数的方法。
代码:
import math
#x的算术平方根
class Solution:def mySqrt(self, x: int) -> int:if x == 0:return 0ans = int(math.exp(0.5 * math.log(x)))return ans+1 if (ans+1)**2 <= x else anss = Solution()
a = s.mySqrt(15)
print(a)
分析:
法二:二分查找法:由于 x 平方根的整数部分ans 是满足 k^2 ≤x 的最大 k 值,因此我们可以对 k进行二分查找,从而得到答案。
二分查找的下界为 0,上界可以粗略地设定为 x。在二分查找的每一步中,我们只需要比较中间元素 mid 的平方与 x的大小关系,并通过比较的结果调整上下界的范围。
代码:
class Solution:def mySqrt(self, x: int) -> int:a,b,ans = 0,x,-1while a <= b:mid = (a + b)//2if mid * mid <= x:ans = mida=mid + 1else:b=mid - 1return ans
返回int类型函数时:
return 0:一般用在主函数结束时,按照程序开发的一般惯例,表示成功完成本函数。
return -1::表示返回一个代数值,一般用在子函数结尾。按照程序开发的一般惯例,表示该函数失败;
题目描述:
假设你正在爬楼梯。需要 n
阶你才能到达楼顶。
每次你可以爬 1
或 2
个台阶。你有多少种不同的方法可以爬到楼顶呢?
分析:
动态规划:f(x)表示爬到第x级台阶的方案数,f(x) = f(x-1) + f(x-2),意味着爬到第x阶方案数等于x-1阶加上x-2阶方案数。f(0)=1,f(1)=1,表示从0级爬到0级一种方案,从0级爬到1级1种方案。有了这两个边界条件,就可以向后推导n级正确结果。
代码:
class Solution:def climbStairs(self, n: int) -> int:a,b,c,i= 0,0,1,1while(i <= n):a = b #a表示爬o级台阶,b表示爬1级台阶b = cc = a + bi += 1return c
leecode#x平方根#爬楼梯相关推荐
- LeetCode 70爬楼梯71简化路径72编辑距离(dp)
新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注这个潇洒青年一起飞,回 ...
- 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?实现 int sqrt(int x) 函数。
今天我们来爬一爬楼梯. 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 ...
- 爬楼梯-斐波那契数列
每日算法---爬楼梯 题目: 假设你正在爬楼梯.需要 n 阶你才能到达楼顶.每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数.示例 1:输入: 2 输 ...
- LeetCode刷题实战70:爬楼梯
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- c++刷题_LeetCode刷题实战70:爬楼梯
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- LeetCode简单题之爬楼梯
题目 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n = 2 输出:2 解释:有两种方法可以爬到楼顶. 1 ...
- LeetCode实战:爬楼梯
题目英文 You are climbing a stair case. It takes n steps to reach to the top. Each time you can either c ...
- 【每日一算法】爬楼梯
微信改版,加星标不迷路! 每日一算法-爬楼梯 作者:阿广 阅读目录 ? 题目 ? 解析 ? 完整代码 1 题目 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多 ...
- msteel能计算钢结构楼梯吗_坚持爬楼梯能减肥吗 怎么爬楼梯可以减肥
现在很多高楼都装有电梯,因此很多人都偏向于挤电梯而不是爬楼梯.即使自己所在的楼层很低都是这样的.但其实适当的爬楼梯是有利于锻炼身体的,据说还有减肥的功效.那么你觉得坚持爬楼梯能减肥吗?下面我们一起去健 ...
最新文章
- 退出命令_Vim命令报错问题:无法用:wq命令保存并退出只读文件
- leetcode470 Java_Java实现 LeetCode 794 有效的井字游戏 (暴力分析)
- Java实现归并排序 Merge Sort
- Linux环境下Android开发环境的搭建
- php扩展的xdebug,安装php扩展:Xdebug
- 数据卡片_E015 如何批量汇总工作簿数据,形成独立工作簿信息卡片
- lua 文件读写处理(操作敏感词库)
- 高等数学|微积分(上)知识点总结
- 【离散数学III】命题逻辑——命题符号及联结词
- c语言一行黑白相间的瓷砖,磁砖样式——第八届蓝桥杯C语言B组(国赛)第二题...
- 微信公众号+Vue+JS-SDK配置注册失败,显示config:fail,Error: 系统错误,错误码:63002,invalid signature等解决方法
- 设置IE浏览器的版本方式
- HUAWEI篇 NGFW与AR网关建立GRE over IPSec隧道
- spark入门框架+python
- win10环境下Android SDK下载安装及配置教程----Android SDK安装
- 贪吃蛇的使命之零基础入门贪吃蛇游戏(附演示地址)
- C语言——初识字符串
- stc8a-22.1184-bu 步。。。。进。、电。额。机
- 国内移动旅行类APP评测与盈利情况
- 关于for循环中使用setTimeout要注意的几点