
文章目錄
- ?? 前言 ??
- 🙀 作者簡介 🙀
- 💗 一、題目描述 💗
- 💁 二、題目決議 💁
- 🏃 三、代碼 🏃
- ?? 1??. python ??
- ?? 2??. C# ??
- 🌔 結語 🌔
?? 前言 ??
演算法作為極其重要的一點,是大學生畢業找作業的核心競爭力,所以為了不落后與人,開始刷力扣演算法題!
第一遍,不求最優解,但求能過!!!
🙀 作者簡介 🙀
大家好,我是布小禪,一個盡力讓無情的代碼變得生動有趣的IT小白,很高興能偶認識你,關注我,每天堅持學點東西,我們以后就是大佬啦!
📢 博客主頁:?布小禪?
📢 作者專欄:
?Python?
?Java??力扣題?
這是我刷第 28/100 道力扣簡單題
💗 一、題目描述 💗
題目描述
實作 int sqrt(int x) 函式,
計算并回傳 x 的平方根,其中 x 是非負整數,
由于回傳型別是整數,結果只保留整數的部分,小數部分將被舍去,
示例 1:
輸入: 4
輸出: 2
示例 2:
輸入: 8
輸出: 2
說明: 8 的平方根是 2.82842…,
由于回傳型別是整數,小數部分將被舍去,
💁 二、題目決議 💁
一個數的平方根小于等于這個數
利用這個思路創建一個回圈
然后通過二分法查找法將元素的平方與數進行比較
🏃 三、代碼 🏃
?? 1??. python ??
class Solution:
def mySqrt(self, x: int) -> int:
if x==0: return 0
if x==1: return 1 # 判斷特殊情況,防止by zero例外
left,right = 0,x/2+1
while left <= right:
mid = (left + right)//2
if mid < x / mid:
left = mid + 1
elif mid > x / mid:
right = mid - 1
else:
return int(mid)
return int(right)
?? 2??. C# ??
public class Solution {
public int MySqrt(int x) {
int left = 1; // 左指標1
int right = x / 2 + 1; // 右指標
while(left <= right){ // 二分法
int mid = (left + right) / 2;
if(mid < x / mid){
left = mid + 1;
}else if(mid > x / mid){
right = mid - 1;
}else{
return mid;
}
}
return right;
}
}
🌔 結語 🌔
堅持最重要,每日一題必不可少!😸
期待你的關注和督促!😛

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/295774.html
標籤:python
