日期:2026年7月25日
LeetCode 題目連結:3536. Maximum Product of Two Digits
解題想法
簡單題。題目給一個數字 $n$,取出 $n$ 之中任意兩個數字相乘,回傳乘積最大值。基本上就是要找出最大的兩個數字相乘,我是用變數 $a$ 儲存最大的數字,變數 $b$ 儲存第二大的數字,用一個 while 迴圈檢查 $n$ 的每個數字,找出 $a, b$ 的乘,最後回傳 $a \times b$。
Python 程式碼
Runtime: 0 ms, beats 100.00%. Memory: 19.40 MB, beats 22.61%.
class Solution:
def maxProduct(self, n: int) -> int:
a, b = 0, 0 # 最大、第二大的數字
while n > 0:
d = n % 10
n //= 10
if d > a: # 新的最大值
a, b = d, a
elif d > b: # 新的第二大
b = d
return a*b
C++ 程式碼
Runtime: 0 ms, beats 100.00%. Memory: 8.70 MB, beats 59.34%.
class Solution {
public:
int maxProduct(int n) {
int a = 0, b = 0; // 最大、第二大的數字
while(n > 0) {
int d = n % 10;
n /= 10;
if (d > a) { // 新的最大值
b = a;
a = d;
} else if (d > b) { // 新的第二大
b = d;
}
}
return a*b;
}
};
沒有留言:
張貼留言