置頂

我的 VPython 教學文件 (HackMD 版本)

VPython 教學文件目錄 安裝及測試 基本語法 等速度直線運動 自由落下 終端速度 水平抛射 使用For迴圈計算水平抛射資料 斜向抛射 圓周運動 簡諧運動 單擺 木塊彈簧系統分離 重力及簡諧 行星運動 相疊木塊 雙重簡諧運動 一維彈性碰撞 ...

熱門文章

2026年7月25日 星期六

LeetCode 解題筆記:3536. Maximum Product of Two Digits

作者:王一哲
日期: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;
    }
};


沒有留言:

張貼留言