iT邦幫忙

2024 iThome 鐵人賽

DAY 1
0

今天我們來解一道經典的 LeetCode 題目:Two Sum。題目要求我們從一個整數陣列中找到兩個數字,使它們的加總等於給定的目標值,並回傳它們的索引值。

題目:
給定一個整數陣列 nums 和一個整數目標值 target,請你在該陣列中找出和為目標值的那 兩個 數,並回傳它們的陣列索引。假設每種輸入只會對應一個答案,且不得重複使用相同的元素。

範例:

輸入:nums = [2, 7, 11, 15], target = 9
輸出:[0, 1]
解釋:因為 nums[0] + nums[1] == 9 ,回傳 [0, 1]。

解題思路

這道題目可以有多種解法,我們先用最簡單的暴力法(Brute Force)來實作。

暴力法的思路很直接,對於每個數字,我們去檢查其餘數字,看它們的和是否等於目標值。這樣可以確保我們找到所有可能的解。

時間複雜度:由於我們需要用兩層迴圈來檢查所有組合,時間複雜度為 O(n^2),其中 n 是陣列的大小。

實作:

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        for (int i = 0; i < nums.size(); i++) {
            for (int j = i+1; j < nums.size(); j++) {
                if (nums[i] + nums[j] == target)
                    return {i, j};
            }
        }
        return {};
    }
};

參考:
#1. Two Sum


下一篇
經典LeetCode 3. Longest Substring Without Repeating Characters
系列文
刷經典 LeetCode 題目36
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言