iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0

暴力窮舉

解題思路

一個直覺的想法是,對陣列中的每個數字 x,檢查是否有另一個數字等於 target - x

為了避免重複配對,我們只需在陣列中,位於 x 後面的元素中尋找 target - x。同時,我們也要確保每個數字只用一次,不要和自己配對。

跟一流的人才幹大事,享受成功進步的高級樂趣!
內推機會來啦!能與優秀的程式設計師共事,是特別痛快的事,因為厲害的工程師大神會刺激你想要迎頭趕上的上進心,尤其是一起討論解決方案時,他們會觸發你有更好的解決思維能力,彼此共同成長並且一起享受解謎與破關般的樂趣。 你一定聽得懂我在說甚麼感覺,趕快把握機會,動動手指投遞履歷吧! 立即加入「面試讀書會」,和大家一起準備面試!

https://ithelp.ithome.com.tw/upload/images/20230915/20151958nT7kgUzy4M.png 內推機會 https://ithelp.ithome.com.tw/upload/images/20230902/20151958hbhGNE7BJ4.png 加入讀書會 (邀請碼:1802)

程式

class Solution {
    fun twoSum(nums: IntArray, target: Int): IntArray {
        val result = IntArray(2)
        for (i in nums.indices) {
            val remains = target - nums[i]
            result[0] = i
            for (j in i + 1 until nums.size) {
                if (nums[j] == remains) {
                    result[1] = j
                    return result
                }
            }
        }
        return result
    }
}

複雜度分析

  • 時間複雜度:
    https://latex.codecogs.com/svg.image?%5Cmathcal%7BO%7D(N%20%5E%202),其中 https://latex.codecogs.com/svg.image?N 是陣列中的元素數量。在最壞情況下,陣列中的任意兩個數都需要配對一次。

  • 空間複雜度:
    https://latex.codecogs.com/svg.image?O(1)

https://ithelp.ithome.com.tw/upload/images/20220912/20151958IFjRs0xIZ4.png 其實還有使用 HashTable 的https://latex.codecogs.com/svg.image?%5Cmathcal%7BO%7D(N)解法哦,一起來學習!

內推機會來啦!

跟一流的人才幹大事,享受成功進步的高級樂趣!

https://ithelp.ithome.com.tw/upload/images/20230915/20151958nT7kgUzy4M.png 內推機會 https://ithelp.ithome.com.tw/upload/images/20230902/20151958hbhGNE7BJ4.png 加入讀書會 (邀請碼:1802)

上一篇
LeetCode 234. Palindrome Linked List
下一篇
LeetCode 232. Implement Queue using Stacks
系列文
破解 Android 工程師面試白板題:30 道面試題目與解答30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言