iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 7
0
自我挑戰組

有志者,事竟成。系列 第 7

Day 7 第三十一題 - LeetCode Two Sum

前言

昨天將另外一邊鐵人賽的文案和實例寫完了,所以今天開始必須處理這邊了。
前面的我會補上解說,然後今天開始....念英文加刷題XD
然後因為要念英文不敢一天刷太多,希望一天一題就好......
(等我念到煩再刷...如果我一天發太多題,肯定是我那天沒好好練習英文QwQ)

第三十一題 Leetcode #1 Two Sum

題目描述

給你一個數字陣列和一個目標數字,請問哪兩個數字相加會等於目標數字,並回傳他們的索引值。
其中必定含有一組答案,且你不可以重複使用同一個數字。
舉例:
nums=[2,7,11,15],target=9
因為 nums[0]+nums[1]==9
所以 return [0,1]

思維

硬幹。但記得 j 必須設 i+1 ,因為他要求不可重複使用同一個數字。

程式碼

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

心路歷程

我......太久沒碰c++,也太久沒寫vector,還重複查了一下才寫,雖然總體耗時不到半小時。
這裡有vector的教學,我是看這裡寫的。
然後我還遇到過一個問題,原本我寫的時候我下方那個return是不存在的。因為我覺得反正你都一定會有一組數字回傳了,為什麼還要我寫呢?
但LeetCode卻報錯給我了error: control reaches end of non-void function [-Werror=return-type]
他的意思是,你曾經承諾會return 一個vector給我的,怎麼沒有return呢?他並沒有實際測試才知道,他是直接看看就覺得寫的不完整。(C++和Python差異QwQ)
接著寫完我又覺得全身不得勁,然後上網查了個笨問題。
vector的return能像python一樣,寫[i,j]不?參考網站
答案貌似不可以QAQ,難道是我的問題嗎QAQ,太久沒寫了,手感不對QAQ


上一篇
Day6 第二十六題~第三十題
下一篇
Day8 第三十二題 LeetCode #2 Add Two Numbers
系列文
有志者,事竟成。19

尚未有邦友留言

立即登入留言