方法一:暴力法
function twoSum(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 null; }
方法二:哈希表
function twoSum(nums, target) { const map = new Map(); for (let i = 0; i < nums.length; i++) { const complement = target - nums[i]; if (map.has(complement)) { return [map.get(complement), i]; } map.set(nums[i], i); } return null; }
方法一:使用暴力法,通过两层循环遍历数组来查找符合条件的两个数。
方法二:使用哈希表,通过一次遍历数组,将每个数的值和索引存储在哈希表中,同时查找是否存在符合条件的数。
暴力法的时间复杂度为O(n^2),空间复杂度为O(1);而哈希表的时间复杂度为O(n),空间复杂度为O(n)。
上一篇:鸿蒙 gnss 开关使能流程