week1-leetcode #1-Two Sum[Easy]
来源:互联网 发布:网络大电影播放量分红 编辑:程序博客网 时间:2024/05/22 17:10
leetcode #1-Two Sum[Easy]
Question
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example
Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].
Solution1[base]
time complecity:
space complecity:
runtime:132ms
#include <vector>#include <iostream>using namespace std;class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { int num_size = nums.size(); vector<int> return_vec; for (int i = 0; i < num_size; i++) { for (int j = i+1; j < num_size; j++) { int num1 = nums[i]; int num2 = nums[j]; if (target == num1+num2) { return_vec.push_back(i); return_vec.push_back(j); return return_vec; } } } return return_vec; }};
思路:使用双重循环遍历vector,第一重循环确定第一个数字,第二重循环确定第二个数字,复杂度是
Solution2[optimal]
time complecity:
space complecity:
runtime:9ms
#include <vector>#include <iostream>// #include <ctime>#include <unordered_map>using namespace std;class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> hash_map; const int nums_size = nums.size(); vector<int> return_vec; for (int i = 0; i < nums_size; i++) hash_map[nums[i]] = i; for (int i = 0; i < nums_size; i++) { int num_to_find = target-nums[i]; // 找到了 if (hash_map.find(num_to_find) != hash_map.end() && hash_map[num_to_find] != i) { return_vec.push_back(i); int j = hash_map[num_to_find]; return_vec.push_back(j); break; } } return return_vec; }};
思路:使用一个哈希表来存储每个值对应的索引信息。使用两次一重循环,第一次是建立哈希表,复杂度是
阅读全文
0 0
- week1-leetcode #1-Two Sum[Easy]
- Leetcode #1 Two Sum (easy)
- Leetcode #1 - Two Sum - Easy
- Leetcode[Easy] - Two Sum
- 【Leetcode】Two sum(easy)
- leetcode Two Sum easy
- 算法设计Week1 LeetCode Algorithms Problem #1 Two Sum
- week1-NO.1 Two Sum
- LeetCode OJ 1 Two Sum [Easy]
- LeetCode-Easy刷题(1) Two Sum
- leetcode 1. Two Sum [Easy]
- LeetCode 1. Two Sum (Easy)
- #1 Two Sum(Easy)
- LeetCode 第1题 Two sum (easy)——python
- Leetcode 1. Two Sum (Easy) (cpp)
- Leetcode 1. Two Sum (Easy) (java)
- LeetCode第一关:Two Sum --> Difficulty: Easy
- LeetCode 371. Sum of Two Integers (Easy)
- 出现addLoadEvent错误
- 基于Redis的简单分布式锁的原理
- Makefile基础教程 4
- Spring RESTful风格url示例
- Docker技术剖析Docker网络配置(一)
- week1-leetcode #1-Two Sum[Easy]
- 【Flink系列1】flink与spark的区别
- (网易2018校招笔试)[编程题] 魔法币
- Makefile基础教程 5
- tomcat部署静态网页
- noip普及组2005 采药
- 为什么要使用事件委托?
- 堆排序 -- 算法小结
- 1451:幸运数字