1.Leetcode 1
配列と目的を考えると、と尋ねた:配列内の2つの文字は、この目標で構成することができます。そして、唯一の可能な所定の(人工的な単純化)
注意点:
LeetCodeは、アイデアをプログラミング簡素化するために、ちょうどクラスは、ソリューションを書くことをしましょう、しかし、地元のデバッグは、main関数を記述する必要があります。主な機能には、新たな変数sのソリューション
パッケージの考え方を反映して、関連する関数や変数を呼び出すことにより、S
進捗状況:
クラスのC言語の使用を確認します
イテレータの使用
コンテナのベクターの使用、およびベクトル演算にデータを追加
コード:
1 // Leetcode#1:twoSum 2 // タイトル説明:配列とさらに数目標を考慮すると、 3 // もしアレイと2つの標的同数の二つの添字の出力の数。 図4は、 // 唯一の解決策があると仮定し、同じ番号を再利用することができません。 5 。6の#include <stdio.hの> 7の#include <入出力ストリーム> 。8の#include <ベクトル> 9 10 使って 名前空間STD; 11 12は 、クラス解決{ 13は、 公衆: 14 ベクトル< INT > twoSum(ベクトル< INT > NUMSと、INT ターゲット){ 15 ベクトル< INT> V(2 )。 16 のために(int型 I = 0 ; iが++; iがnums.size()< ) 17 { 18の ための(int型 J = I + 1、J ++; J <nums.size() ) 19 { 20 場合(NUMS [I] + NUMS [J] == ターゲット) 21 { 22 V [ 0 ] = I。 23 V [ 1 ] = jは、 24 リターンV; 25 } 26 27 } 28 } 29 リターンV。 30 } 31 }。 32 33 のint main()の 34 { 35 溶液S。// 初期化オブジェクトS 36 ベクトル< INT > V1。// ダイナミックアレイ容器 37 ベクトル< INT > V2。 38 ベクトル< int型 > ::イテレータITE。// 迭代器イテレータ 39 40 v1.push_back(0)。//ベクターの末尾に追加 41 v1.push_back(1 )。 42 v1.push_back(2 )。 43 v1.push_back(3 )。 44 45 のintターゲット= 5 。 46 V2 = s.twoSum(V1、ターゲット) 47 48 のために(int型 I = 0 ; iが++; iがv2.size()< ) 49 { 50 COUT << V2 [i]は<< ENDLと、 51 } 52 53 戻り 0 ; 54 }
#Leetcode 1 //:twoSum //タイトル説明:、数字の配列、さらにターゲットが与えられる配列ターゲットの数、2つの添字の出力の数は2に等しく、場合//。//は、唯一の解決策、そして同じ番号を再利用することができないと仮定しました。する#include <stdio.hに> する#include <iostreamの> する#include <ベクトル> 名前空間STDを使用して、クラスのソリューション{ パブリック: ベクトル<整数> twoSum(ベクトル<整数> NUMSと、int型のターゲット){ ベクトル<整数> V(2 ); のために(;私は(nums.sizeを<I = 0 INT); Iは++) { ため(INT I = J + 1、。J <nums.size(); J ++) { IF(NUMS [I] NUMS + [J ] ==ターゲット) { V [0] = I; Vの[1] = J; Vを返します; }
} } 戻りV。 } }。INTメイン(){ 溶液S; //オブジェクトの初期化 ベクトルを<整数> V1; //ダイナミックアレイコンテナ ベクトル<整数> V2。 ベクトル<整数> ::イテレータITE; //迭代器イテレータ v1.push_back(0); //ベクトルのエンドに追加 v1.push_back(1); v1.push_back(2)。 v1.push_back(3)。 int型のターゲット= 5; V2 = s.twoSum(V1、ターゲット) 以下のために(INT i = 0; i)は(v2.sizeを<; iは++) { COUT << V2 [i]は<< ENDL。 } 0を返します。}