兩數(shù)之和

<script>
        // 入:nums = [2,7,11,15], target = 9
        // 輸出:[0,1]
        // 解釋:因為 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
        /**
         * @param {number[]} nums
         * @param {number} target
         * @return {number[]}
         */

        // 思路一 使用 map 循環(huán)遍歷 看map中是否有符合的值  有就返回 沒有就存入 最后如果都沒有 返回[]
        // const twoSum = function (nums, target) {
        // let map = new Map()
        // for (let i = 0; i < nums.length; i++) {
        //     const result = target - nums[i]
        //     if (map.has(result)) {
        //         return [map.get(result), i]
        //     } else {
        //         map.set(nums[i], i)
        //     }
        // }
        // return []
        // };
        // 思路二 雙層循環(huán)  暴力解法
        // const twoSum = function (nums, target) {
        //     for (let i = 0; i < nums.length; i++) {
        //         for (let j = i + 1; j < nums.length; j++) {
        //             if (nums[i] + nums[j] == target) {
        //                 return [i, j]
        //             }
        //         }
        //     }
        //     return []
        // };
        // 思路 三 雙指針 判斷兩個指針相加 是否為 目標值 ,是就返回索引,不是就繼續(xù)循環(huán) 指針+1如此往復
        const twoSum = function (nums, target) {
            let i = 0, j = 1, maxLength = nums.length - 1;
            while (nums[i] + nums[j] != target) {
                j++
                if (j === maxLength) {
                    i++
                    j = i
                }
            }
            return [i, j]
        };
        let result = twoSum([2, 7, 11, 15], 9)
        console.log(result);
    </script>
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容