Code Kata #1
9716 ワード
コードディレクトリ#1 数値配列と特定数をtwoSum関数にパラメータとして渡す場合は、「特定数」が表示されるインデックスを配列に入れて返します。 nums:数値配列 target:2つの数の合計を加算できます return:2つのインデックスの配列 たとえば、 numsは[4,9,11,14]targetは13を表す nums[0]+nums[1]=4+9=13でしょう? [0,1]を返さなければなりません。 **仮定** targetに送信された合計は配列全体で2つしかないと仮定した。
💁 もんだいぶんせき
配列から2つの数を減算し、加算した値がターゲット値に等しい場合は、2つの数の配列インデックス値を返す必要があります.そのため、for文を使用して加算する2つの数を検索し、条件に合致する数を見つける必要があります.そのため、for文にif文を入れる必要があります.
🙈 マイコード
✔」初めての試み
const twoSum = (nums, target) => {
// 아래 코드를 작성해주세요.
let arr = [];
for (let i = 0; i < nums.length; i++){
for(let i = i + 1; i < nums.length; i++){
if(nums[i] + nums[j] === target){
arr.push(i, i+1);
}
}
}
return arr;
};
module.exports = { twoSum };
最初は変数をiとi+1に設定しましたが、nums配列に2つの数字がない場合は失敗します.✔」2回目の試み
では、いっそ変数を違うものに設定して、比較してみてはいかがでしょうか.このような気持ちで変数iとjを宣言し,繰り返し文を振り返った.
const twoSum = (nums, target) => {
// 아래 코드를 작성해주세요.
let arr = [];
for (let i = 0; i < nums.length; i++){
for(let j = i + 1; i < nums.length; j++){
if(nums[i] + nums[j] === target){
arr.push(i, j);
}
}
}
return arr;
};
module.exports = { twoSum };
結果は成功し、let j
からi+1
まで、1を使わなくても構わない.👍 その他の回答
const twoSum = (nums, target) => {
// 아래 코드를 작성해주세요.
let arr = [];
const subArr = nums.map(num => target - num);
const intersection = nums.filter(num => subArr.includes(num))
intersection.forEach(num => arr.push(nums.indexOf(num)))
return arr;
};
【IDを読む】のハーモニー…!本当に光のように衝撃を受けます;ドアが非効率なので、どうしようか悩んでいましたが、こんな方法があるなんて驚きました.私はまだmap methodとあまり詳しくありませんが、今度の機会に勉強し直すべきだと思います.
Array.map()テクノロジーブログ
Array.map()公式ドキュメント
Array.filter()公式ドキュメント
Reference
この問題について(Code Kata #1), 我々は、より多くの情報をここで見つけました https://velog.io/@somangoi/Code-Kata-1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol