LeetCode 數學 解答技巧總結

2021-08-21 18:36:45 字數 664 閱讀 3167

int reverse(int x) 

x/=10;

} return r;

}

在網上看到別人的答案,感覺非常精妙。首先,此解答無需判斷整數的正負,正負數進行加減乘除取餘操作結果都一樣,其次,判斷是否溢位也非常簡單,因為輸入是整數,所以溢位只可能出現在最後一位需要反轉的數字加上去之後,也就是對原整數最高為進行反轉之後,因此判斷最後一位加上之前的值t與加上最後一位以後減去剛加上的那一位,如果不相等,則表明出現了整數溢位,輸出0。

string addbinary(string a, string b) 

return s;

}

看到此解答,第一感覺就是簡單,而且很清晰,對解答該題常見的難點都做了完美的解決。1)兩個字串長度不一樣,採用了長度 「或」 的邏輯,字串結束後,預設取0;2)進製問題,也採用了 「或」 ,即使兩個字串長度已經結束了,但是carry為1時繼續執行;3)目標字串s每次將新增字元加到最前面,解決了倒序問題。

string addstrings(string num1, string num2) 

return s;

}

與上面的題目解答類似,只是將二進位制改為了十進位制,只需要將少許改動即可完成,優點見上面分析。

LeetCode演算法題解答

leetcode演算法題解答 第四題 尋找兩個有序陣列的中位數 給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。def findmedianso...

LeetCode精彩解答(一)

發現自己在刷了一部分題以後,對之前的題的記憶度不是很高,尤其是在看到別人精彩 的時候,總是在當時誇讚,而事後忘記的低效率。特此決定把一些自己的想法和別人的精彩 題解收集在一起,以便學習。就從我個人的刷題順序來吧,從簡單的開始。題目 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列...

數學技巧 ZigZag Conversion

思想 關鍵是歸納出元素出現位置的公式。比如 nrows 4 的情形需要下面這樣的分布 第0行 0 6 12 第1行 1 5 7 11 第2行 2 4 8 10 第3行 3 9 1 對於 第0行 第3行 最後一行 出現的元素在原串的位置依次是 0,6,12 規律是 0,0 2 nrows 2 6,6 ...