1. 程式人生 > >刷題第一日:兩數之和

刷題第一日:兩數之和

今天開始刷letcode,先從簡單題開始刷,不得不說,平時還是寫的少,一個賊簡單的題花了半天才寫完,還是vector用的不多.

題目如下: 給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。

你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。

示例:

給定 nums = [2, 7, 11, 15], target = 9 因為 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]

題目原地址:

我的解法:暴力求解,一個一個去試,時間複雜度O(n2)

class Solution {
public:
    vector<int>
twoSum(vector<int>& nums, int target) { vector<int> result; int leftnum; for(int i=0;i<nums.size();i++){ leftnum=target-nums[i]; for(int j=i+1;j<nums.size();j++){ if(nums[j]==leftnum){ result.
push_back(i); result.push_back(j); break; } } if(!result.empty()){ break;//此處不知為何要判空????? } } return result; } };

做題過程中出現的問題: (1)vector中插入元素不能用’’[]’’,*[]*只能用來遍歷 (2)定義一個vector,只需要vector result,不要寫vector result[2]; (3)vector.size()若要在迴圈中不斷使用,就用一個變數存起來,不要一直呼叫這個函式 (4)插入vector用push_back() (5)迴圈結束後要判空,if條件滿足直接跳出,不要一直繼續迴圈下去

(存疑)

存在的編輯問題:為什麼按了tab或者空格鍵正文格式會出問題(用的markdown編輯器)