LeetCode C 刷題 69 72題題解

2021-10-08 23:01:46 字數 2761 閱讀 6426

實現 int sqrt(int x) 函式。

計算並返回 x 的平方根,其中 x 是非負整數。

由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。

示例 1:

輸入: 4

輸出: 2

示例 2:

輸入: 8

輸出: 2

說明: 8 的平方根是 2.82842..., 

由於返回型別是整數,小數部分將被捨去。

二分

class solution else if(temp > x)

r = mid - 1;

}else if(temp < x)

l = mid + 1;}}

return 0;

}};

假設你正在爬樓梯。需要 n 階你才能到達樓頂。

每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?

注意:給定 n 是乙個正整數。

示例 1:

輸入: 2

輸出: 2

解釋: 有兩種方法可以爬到樓頂。

1.  1 階 + 1 階

2.  2 階

示例 2:

輸入: 3

輸出: 3

解釋: 有三種方法可以爬到樓頂。

1.  1 階 + 1 階 + 1 階

2.  1 階 + 2 階

3.  2 階 + 1 階

動態規劃

class solution 

return dp[n];

}};

以 unix 風格給出乙個檔案的絕對路徑,你需要簡化它。或者換句話說,將其轉換為規範路徑。

在 unix 風格的檔案系統中,乙個點(.)表示當前目錄本身;此外,兩個點 (..) 表示將目錄切換到上一級(指向父目錄);兩者都可以是複雜相對路徑的組成部分。更多資訊請參閱:linux / unix中的絕對路徑 vs 相對路徑

請注意,返回的規範路徑必須始終以斜槓 / 開頭,並且兩個目錄名之間必須只有乙個斜槓 /。最後乙個目錄名(如果存在)不能以 / 結尾。此外,規範路徑必須是表示絕對路徑的最短字串。

示例 1:

輸入:"/home/"

輸出:"/home"

解釋:注意,最後乙個目錄名後面沒有斜槓。

示例 2:

輸入:"/home//foo/"

輸出:"/home/foo"

解釋:在規範路徑中,多個連續斜槓需要用乙個斜槓替換。

示例 4:

輸入:"/a/./b/../../c/"

輸出:"/c"

示例 5:

輸入:"/a/../../b/../c//.//"

輸出:"/c"

示例 6:

輸入:"/a//bc/d//././/.."

輸出:"/a/b/c"

棧(根據後序表示式求值的思想)

class solution  else if(temp == "..") 

} else

temp = ""; // 將temp置為空

} else

}//處理最後乙個

if(temp == "" || temp == ".")

else if(temp == "..")

} else

string result = "";

for(int i = 0; i < arr.size(); i++)

return result == "" ? "/" : result;

}};

給你兩個單詞 word1 和 word2,請你計算出將 word1 轉換成 word2 所使用的最少運算元 。

你可以對乙個單詞進行如下三種操作:

插入乙個字元

刪除乙個字元

替換乙個字元

示例 1:

輸入:word1 = "horse", word2 = "ros"

輸出:3

解釋:horse -> rorse (將 'h' 替換為 'r')

rorse -> rose (刪除 'r')

rose -> ros (刪除 'e')

示例 2:

輸入:word1 = "intention", word2 = "execution"

輸出:5

解釋:intention -> inention (刪除 't')

inention -> enention (將 'i' 替換為 'e')

enention -> exention (將 'n' 替換為 'x')

exention -> exection (將 'n' 替換為 'c')

exection -> execution (插入 'u')

動態規劃

class solution 

//需要全部刪除,因此等於dp[0][i] = i

for(int i = 1; i <= m; i ++)

for(int i = 1; i <= n; i ++) else }}

return dp[n][m];

}};

LeetCode C 刷題 13 16題題解

羅馬數字包含以下七種字元 i,v,x,l,c,d 和 m。字元 數值 i 1 v 5 x 10 l 50 c 100 d 500 m 1000 例如,羅馬數字 2 寫做 ii 即為兩個並列的 1。12 寫做 xii 即為 x ii 27 寫做 xxvii,即為 xx v ii 通常情況下,羅馬數字中...

LeetCode C 刷題 53 56題題解

給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。高階 如果你已經實現複雜度為 o n 的解法,嘗試使用更為精妙的分治法求解。1 雙指標法 2...

LeetCode C 刷題129 132題題解

目錄 129 求根到葉子節點數字之和 題目 題解 130 被圍繞的區域 題目 題解 131 分割回文串 題目 題解 132 分割回文串ii 題目 題解 給定乙個二叉樹,它的每個結點都存放乙個 0 9 的數字,每條從根到葉子節點的路徑都代表乙個數字。例如,從根到葉子節點路徑 1 2 3 代表數字 12...