【Leetcode 做题学算法周刊】第一期
首发于微信公众号《前端成长记》,写于 2019.10.28 背景 本文记录刷题过程中的整个思考过程,以供参考。主要内容涵盖: 题目分析设想 编写代码验证 查阅他人解法 思考总结 目录 1.两数之和 7.整数反转 9.回文数 13.罗马数字转整数 14.最长公共前缀 Easy 1.两数之和 题目地址 题目描述 给定一个整数数组 nums 和一个目标值 target ,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 题目分析设想 这道题首先说明了每种输入只会对应一个答案,并且不能利用数组中同样的元素,也就意味着一个数不能被使用两次,即 [0,0] 这种是不合理的。 看到这个题目,我有几个方向去尝试作答: 暴力点,直接循环两次即可,预估性能最差 IndexOf ,循环次数最多, 非常不推荐 空间换时间,使用 HashMap ,减少一次循环 编写代码验证 Ⅰ.暴力法 代码: // 暴力点 /** * @param {number[]} nums * @param {number} target * @return