题目描述:

给你一个非负整数 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平方根#爬楼梯相关推荐

  1. LeetCode 70爬楼梯71简化路径72编辑距离(dp)

    新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注这个潇洒青年一起飞,回 ...

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

    今天我们来爬一爬楼梯. 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 ...

  3. 爬楼梯-斐波那契数列

    每日算法---爬楼梯 题目: 假设你正在爬楼梯.需要 n 阶你才能到达楼顶.每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数.示例 1:输入: 2 输 ...

  4. ​LeetCode刷题实战70:爬楼梯

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  5. c++刷题_LeetCode刷题实战70:爬楼梯

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  6. LeetCode简单题之爬楼梯

    题目 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n = 2 输出:2 解释:有两种方法可以爬到楼顶. 1 ...

  7. LeetCode实战:爬楼梯

    题目英文 You are climbing a stair case. It takes n steps to reach to the top. Each time you can either c ...

  8. 【每日一算法】爬楼梯

    微信改版,加星标不迷路! 每日一算法-爬楼梯 作者:阿广 阅读目录 ? 题目 ? 解析 ? 完整代码 1 题目 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多 ...

  9. msteel能计算钢结构楼梯吗_坚持爬楼梯能减肥吗 怎么爬楼梯可以减肥

    现在很多高楼都装有电梯,因此很多人都偏向于挤电梯而不是爬楼梯.即使自己所在的楼层很低都是这样的.但其实适当的爬楼梯是有利于锻炼身体的,据说还有减肥的功效.那么你觉得坚持爬楼梯能减肥吗?下面我们一起去健 ...

最新文章

  1. 退出命令_Vim命令报错问题:无法用:wq命令保存并退出只读文件
  2. leetcode470 Java_Java实现 LeetCode 794 有效的井字游戏 (暴力分析)
  3. Java实现归并排序 Merge Sort
  4. Linux环境下Android开发环境的搭建
  5. php扩展的xdebug,安装php扩展:Xdebug
  6. 数据卡片_E015 如何批量汇总工作簿数据,形成独立工作簿信息卡片
  7. lua 文件读写处理(操作敏感词库)
  8. 高等数学|微积分(上)知识点总结
  9. 【离散数学III】命题逻辑——命题符号及联结词
  10. c语言一行黑白相间的瓷砖,磁砖样式——第八届蓝桥杯C语言B组(国赛)第二题...
  11. 微信公众号+Vue+JS-SDK配置注册失败,显示config:fail,Error: 系统错误,错误码:63002,invalid signature等解决方法
  12. 设置IE浏览器的版本方式
  13. HUAWEI篇 NGFW与AR网关建立GRE over IPSec隧道
  14. spark入门框架+python
  15. win10环境下Android SDK下载安装及配置教程----Android SDK安装
  16. 贪吃蛇的使命之零基础入门贪吃蛇游戏(附演示地址)
  17. C语言——初识字符串
  18. stc8a-22.1184-bu 步。。。。进。、电。额。机
  19. 国内移动旅行类APP评测与盈利情况
  20. 关于for循环中使用setTimeout要注意的几点

热门文章

  1. 迅为i.MX6ULL开发板-Qt5.7Mplayer 移植文档
  2. STM32单片机小游戏触摸屏打地鼠2.8寸TFT液晶显示屏计分和关卡
  3. 2021年全球及中国小家电行业发展现状分析,健康化和智能化产品将成为未来发展的重要方向「图」
  4. Android 高德地图地铁信息查询
  5. 性能测试实战(八):逻辑控制器
  6. 漫画算法-学习笔记(11)
  7. 二值网络——开启小而快神经网络时代
  8. CSS day1 |选择器字体文本引入方式
  9. Java爬虫获取网页表格数据
  10. 阿里云全球实时传输网络GRTN—QOE优化实践