Code Kata -Day 1



Code Kata - Day 1



どうやって近づくの?


for文で配列内のすべての要素値をすばやくチェック
<script>
const twoSum = (nums, target) =>{
	let arr = []
	for(i=0; i<nums.length; i++){
    	for(j=0; j<nums.length; j++){
        	if(nums[i] + nums[j] == target){
            	return [i,j]
                }
            }
      	}
     }
</script>
example)twoSum([4,9,11,14],13)標準
インデックスをチェックするメカニズム(順番)
0 0
0 1
0 2
0 3
1 0
1 1
1 2
1 3
2 0
2 1
2 2
2 3
3 0
3 1
3 2
3 3(数値はインデックスごと)
全部で16回比較します.
次に、正しい答え[0,1]--2番目の比較を返します.

もっと効果的な方法はありますか?


比較対象を減らす
<script>
const twoSum = (nums, target) =>{
	let arr = []
	for(i=0; i<nums.length-1; i++){
    	for(j=i+1; j<nums.length; j++){
        	if(nums[i] + nums[j] == target){
            	return [i,j]
                }
            }
      	}
     }
</script>
example)twoSum([4,9,11,14],13)標準
インデックスをチェックするメカニズム(順番)
0 1
0 2
0 3
1 2
1 3
2 3
全部で6回比較します.
つまり、不要な比較を抜き、より気軽に結論を出すことができるのです.