当前位置: 首页 > news >正文

Leetcode69 x的平方根

x的平方根

    • 题解1 袖珍计算器算法
    • 题解2 二分查找
    • 题解3 牛顿迭代

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

由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。

注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。

示例 1:
输入:x = 4
输出:2

示例 2:
输入:x = 8
输出:2
解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。

提示:

0 <= x <= 231 - 1

题解1 袖珍计算器算法

在这里插入图片描述

class Solution {
public:int mySqrt(int x) {if (x == 0) {return 0;}int ans = exp(0.5 * log(x));return ((long long)(ans + 1) * (ans + 1) <= x ? ans + 1 : ans);}
};

题解2 二分查找

class Solution {
public:int mySqrt(int x) {int l = 0, r = x, ans = -1;while (l <= r) {int mid = l + (r - l) / 2;if ((long long)mid * mid <= x) {ans = mid;l = mid + 1;} else {r = mid - 1;}}return ans;}
};

题解3 牛顿迭代

class Solution {
public:int mySqrt(int x) {if (x == 0) {return 0;}double C = x, x0 = x;while (true) {double xi = 0.5 * (x0 + C / x0);if (fabs(x0 - xi) < 1e-7) {break;}x0 = xi;}return int(x0);}
};
http://www.lryc.cn/news/259588.html

相关文章:

  • 在Linux上安装配置Nginx高性能Web服务器
  • LeetCode 每日一题 Day 11||贪心
  • ocr表格文字识别软件怎么使用?
  • 【QT 5 调试软件+Linux下调用脚本shell-经验总结+初步调试+基础样例】
  • 使用 Goroutine 和 Channel 构建高并发程序
  • 大数据机器学习与深度学习——过拟合、欠拟合及机器学习算法分类
  • Lenovo联想拯救者Legion Y9000X 2021款(82BD)原装出厂Windows10系统
  • pytorch中的transpose用法
  • SpringBoot面试题及答案(最新50道大厂版,持续更新)
  • KUKA机器人如何隐藏程序或程序段?
  • C++ STL(1)--概述
  • unity 2d 入门 飞翔小鸟 死亡闪烁特效(十三)
  • Cannot find cache named ‘‘ for Builder Redis
  • IntelliJ IDEA的下载安装配置步骤详解
  • 光线追踪算法实现
  • 学习深度强化学习---第3部分----RL蒙特卡罗相关算法
  • linux虚拟机使用81-persistent-net.rule后接口名依然改变的问题处理
  • ARMV8 - A64 - 跳转和返回指令
  • QX320F28335,自研内核指令集,主频150MHz,自研工具链,纯国产DSP,硬件兼容TMS320F28335
  • 《使用ThinkPHP6开发项目》 - 登录接口一
  • zabbix精简模板
  • GO设计模式——14、代理模式(结构型)
  • 外贸SOHO建站怎么做?海洋建站方法策略?
  • 商城免费搭建之java鸿鹄云商 java电子商务商城 Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c
  • 【淘宝网消费类电子产品销售数据可视化】
  • AI编译器及TVM概述
  • 排序-归并排序与计数排序
  • 国产数据库适配-人大金仓(kingbase V8R3)
  • HAAS 哈斯机床 读写刀补数据
  • Visual studio+Qt开发环境搭建以及注意事项和打开qt的.pro项目