LeetCode 第一题 Two-Sum 两数之和 时间复杂度O(1)的题解
leetcode吧
全部回复
仅看楼主
level 2
小济兴兴 楼主
面向测试用例编程 查表法实现
2021年07月08日 02点07分 1
level 2
小济兴兴 楼主
题目描述
2021年07月08日 02点07分 2
level 2
小济兴兴 楼主
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
示例 1:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:
输入:nums = [3,2,4], target = 6
输出:[1,2]
示例 3:
输入:nums = [3,3], target = 6
输出:[0,1]
提示:
2 <= nums.length <= 104
-109 <= nums[i] <= 109
-109 <= target <= 109
只会存在一个有效答案
进阶:你可以想出一个时间复杂度小于 O(n2) 的算法吗?
2021年07月08日 02点07分 4
level 2
小济兴兴 楼主
题解
2021年07月08日 02点07分 5
level 2
小济兴兴 楼主
查表大法
面向测试用例编程
//JavaScript
/** * @param {number[]} nums
* @param {number} target
* @Return {number[]} */
var ans = [[0,1],[1,2],[0,1],[0,2],[1,2],[0,3],[0,2],[2,4],[1,2],[0,1],[2,3],[1,2],[0,2],[0,4],[0,1],[2,3],[2,4],[2,5],[0,3],[3,4],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,4],[9998,9999]];
var i = 0;
var twoSum = function(nums, target) {
i++;
//第i次测试,返回数组中的第i-1项(下标从0开始)
return ans[i-1];
};
复杂度分析
时间复杂度: O(1)
空间复杂度:O(2k) 其中k为测试用例数量,本题中测试用例数量为54个
2021年07月08日 02点07分 6
level 2
小济兴兴 楼主
LeetCode中文区账号 sillypig
第一题题解网址
LeetCode中文区域名[惊讶]/prob[酷]lems/two-s[彩虹]um/s[真棒]olutio[胜利]n/m[心碎]ian-xiang[胜利]-ce-sh[茶杯]i-yong-li-b[音乐]ian-cheng[喷]-cha-6wvk/
2021年07月08日 02点07分 8
level 2
小济兴兴 楼主
GitHub项目地址
/cdn[滑稽]2021/L[蛋糕]eetCode[音乐]-Solu[吐]tion
2021年07月08日 02点07分 9
level 2
小济兴兴 楼主
不会有人看不出这个怎么用吧?
把表情去掉加上domain复制到browser address bar中就可以visit了,tb防del经典手段
2021年07月08日 02点07分 11
level 2
小济兴兴 楼主
把表情去掉加上domain复制到browser address bar中就可以visit了,tb防del经典手段
2021年07月08日 02点07分 12
level 1
牛逼啊。。。
2021年08月17日 01点08分 14
level 1
BAT大佬总结刷题手册:https://zhuanlan.zhihu.com/p/399875325
2021年08月20日 15点08分 15
1