leetcode(一)—— Two Sum(Python/C++)
来源:互联网 发布:增值税发票查询平台js 编辑:程序博客网 时间:2024/06/05 20:47
Python
这个题目的最新版本支持 0 开始的索引,显然从 1 开始的索引是有违程序员的道德的。
class Solution(object): def twoSum(self, nums, target): for i, x in enumerate(nums[:-1]): for j, y in enumerate(nums[1:]): if x+y == target and i != j+1: return [i, j+1]if __name__ == '__main__': sln = Solution() print(sln.twoSum([2,1,9,4,4,56,90,3], 8))
时间复杂度为
class Solution(object): def twoSum(self, nums, target): d = defaultdict(int) for i, num in enumerate(nums): if num not in d: d[target-num] = i else: return [d[num], i]
这里所使用的字典 d,建立 值 与 与其关于 target 成互补关系的值的下标;
C++
我们根据第二版的 Python 代码,很容易给出 C++ 的实现形式:
#include <unordered_map>class Solution{public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> d; vector<int> ret; for (size_t i = 0; i < nums.size(); ++i) { if (d.find(nums[i]) == d.end()) { d[target-nums[i]] = i; } else { ret.push_back(d[nums[i]]); ret.push_back(i); break; } } return ret; }};
0 0
- leetcode(一)—— Two Sum(Python/C++)
- 【leetcode】1. Two Sum(Python & C++)
- LeetCode(一)Two Sum
- LeetCode:1. Two Sum解法(C,C++,Jave,Python)
- LeetCode 1 — Two Sum(C++ Java Python)
- Python学习——leetcode(Two Sum)
- LEETCODE 1.Two Sum (python实现)
- Leetcode题解(Python): 1.Two Sum
- LeetCode 1.Two Sum (Python)
- 【LeetCode 1】Two Sum(Python)
- LeetCode奇幻漂流(一)Two Sum
- [LeetCode]1 Two Sum(C++,Python实现)
- 【Leetcode】【Python】【C++】1. Two Sum实现
- LeetCode — Two Sum
- LeetCode—Two Sum
- LeetCode—Two Sum
- leetcode—Two Sum
- LeetCode —-Two Sum
- easyui的validatebox校验
- HDOJ 2026 首字母变大写
- 已知与未知
- R语言︱用excel VBA把xlsx批量转化为csv格式
- Linux内核分析7:Linux内核装载和启动一个可执行程序的分析
- leetcode(一)—— Two Sum(Python/C++)
- [转]Android ANR 分析解决方法
- Git中的AutoCRLF与SafeCRLF换行符问题
- SpringMVC学习记录(七)--拦截器的使用
- Linux查找文件内容的常用命令方法
- C++Primer习题9.26,9.27解答错误
- 《JavaScript高级程序设计》——函数表达式
- android studio更新后出现的错误提示
- easyui添加编辑按钮