日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1.1.3 数组——x的平方(Leetcode 69)

發布時間:2023/12/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.1.3 数组——x的平方(Leetcode 69) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

x的平方

    • 1. 題目
    • 2. 思路
    • 3. 代碼實現
    • 4. 總結

1. 題目

leetcode鏈接
給你一個非負整數 x ,計算并返回 x 的 算術平方根 。

由于返回類型是整數,結果只保留 整數部分 ,小數部分將被 舍去 。

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

示例 1:

輸入:x = 4
輸出:2
示例 2:

輸入:x = 8
輸出:2
解釋:8 的算術平方根是 2.82842…, 由于返回類型是整數,小數部分將被舍去。

提示:

0 <= x <= 231 - 1

2. 思路

因為只保留整數部分,所以ans 是滿足 k2 ≤ x 的最大 k 值

解法一:對數函數求平方根

【注意:返回值為浮點數,會產生精度問題】

解法二:二分法搜索k

解法三:牛頓迭代法

  • 將題目轉化成求解函數零點
  • 牛頓迭代法的本質是借助泰勒級數,從初始值開始快速向零點逼近。
  • 實現過程
  • 實現細節
  • 3. 代碼實現

    解法二:二分法搜索k

    class Solution { public:int mySqrt(int x) {int left = 0;int right = x;int ans = -1;while(left <= right){int middle = left + (right - left) / 2;if((long long)middle*middle <= x){ans = middle; // 滿足條件的k, 最后更新得到ansleft = middle + 1;}else{right = middle - 1;}}return ans;}};

    復雜度分析

    • 時間復雜度:O(logx)O(logx)O(logx),即為二分查找需要的次數。
    • 空間復雜度:O(1)O(1)O(1)

    解法三:牛頓迭代法

    class Solution { public:int mySqrt(int x) {if (x == 0) return 0;// 設置迭代初始值double x0 = x;double C = x;while(true){double x1 = 0.5 * (x0 + C/x0); // 根據公式得到下一個點x(i+1)if(fabs(x1 - x0) < 1e-7) break;x0 = x1; // 更新點xi}return int(x0);}};

    復雜度分析

    • 時間復雜度:O(logx)O(logx)O(logx),此方法是二次收斂的,相較于二分查找更快。
    • 空間復雜度:O(1)O(1)O(1)

    4. 總結

    1. 溢出判斷

    (long long)middle*middle <= x
    • 這里middle的取值范圍為0 <= middle <= 231 - 1,則0 <= middle * middle < 262
    • 而int型變量的取值范圍為231 <= middle <= 231
    • 因為需要將變量類型轉換為long

    2. 已知直線斜率和直線上一點,直線方程的表達公式

    3. abs()與fabs()

    • abs( )主要用于對求整數的絕對值,在“stdlib.h”(或 )頭文件里面。
    • 而fabs( )主要是求精度要求更高的double ,float 型的絕對值,在< cmath>頭文件里。
    • 兩者在只#include< cmath>時都可以使用。

    4. 訂正數學習慣寫法

    double x1 = 1/2 * (x0 + C/x0); // 根據公式得到下一個點x(i+1)

    寫成這種形式會一直循環下去,因為這里的1/2會得到0!

    總結

    以上是生活随笔為你收集整理的1.1.3 数组——x的平方(Leetcode 69)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日韩av男人的天堂 | 亚洲精品少妇久久久久久 | 青青久久久 | 欧美性综合 | 超碰在线色 | 久久精品国产网红主播 | 色悠悠国产| 欧美成人三级在线 | 午夜大片网 | 欧美精品第1页 | 一级真人毛片 | 女女同性女同一区二区三区按摩 | 亚洲涩涩网 | 亚洲图片欧美色图 | 久久久精品免费看 | 张柏芝亚洲一区二区三区 | 琪琪色18 | 调教一区二区三区 | 国产乱仑 | av无限看 | 亚洲av无码不卡一区二区三区 | 视频二区中文字幕 | 乱图区| 综合色av | 国产精品久久久999 www日本高清视频 | 欧美xxxx8888 | 夫妻黄色片 | 99视频一区二区 | 日本久色 | 在线a级 | 日韩电影三级 | 特黄老太婆aa毛毛片 | 亚洲视频 一区 | 国产伦子伦对白视频 | 国产特黄级aaaaa片免 | 在线观看1区 | 色综合天天色 | 亚洲精品乱码久久久久久国产主播 | 亚洲一片 | 中文字幕第5页 | 亚洲a免费 | 天天操 夜夜操 | 贝利弗山的秘密1985版免费观看 | 精品一区二区三区视频日产 | 欧美成人三级视频 | 国产高清一区二区三区四区 | 亚洲欧美色视频 | 国产69精品久久久久久 | 久久久情 | 四虎免看黄| 日本japanese乳偷乱熟 | 国产一区二区精品在线观看 | 国产精品高潮呻吟久久久 | 日本人xxxxxxxxx泡妞 | 一二三区精品视频 | 人妻激情偷乱视频一区二区三区 | 亚洲a√ | 5566色| 成人久久在线 | 香蕉狠狠爱视频 | 美女一区 | 欧美激情啪啪 | 亚洲欧美在线一区二区 | 福利影院在线观看 | 久久久免费av | aaaa黄色片| 99热网 | 91高清在线| 丝袜美腿亚洲一区二区图片 | aa一级片 | 亚欧美色图 | 五月天丁香婷 | 国产精品一区二区毛片 | 女王脚交玉足榨精调教 | 天天天天天天天干 | 377p粉嫩大胆色噜噜噜 | 亚洲精品动漫在线观看 | 欧美图片自拍偷拍 | 99精品久久99久久久久 | 久久久久久久久久久国产精品 | 免费成年人视频 | 国产鲁鲁视频在线观看免费 | 亚洲一区二区三区成人 | 草久在线 | 99在线视频免费观看 | 永久免费快色 | 伊人动漫| 国语播放老妇呻吟对白 | 一区二区三区在线视频免费观看 | 深夜视频在线看 | 少妇特黄a一区二区三区 | 欧美一区二区三区激情视频 | 亚洲免费成人av | 黄色片网站国产 | 久久久久噜噜噜亚洲熟女综合 | 精品韩国一区二区三区 | 国产97av | 91丝袜国产在线观看 | 日韩有码在线观看 |