当前位置:网站首页>LeetCode1_ Sum of two numbers
LeetCode1_ Sum of two numbers
2022-07-07 15:42:00 【WhiteTian】
Original article , Reprint please indicate the source .
Topic type : Simple type
C++ Explain Sum of two numbers
The title is as follows
Given an array of integers nums And an integer target value target, Please find... In the array And is the target value target the Two Integers , And return their array subscripts .
You can assume that each input corresponds to only one answer . however , The same element in the array cannot be repeated in the answer .
You can return the answers in any order .
Example 1:
Input :nums = [2,7,11,15], target = 9
Output :[0,1]
explain : because nums[0] + nums[1] == 9 , return [0, 1] .
Example 2:
Input :nums = [3,2,4], target = 6
Output :[1,2]
Example 3:
Input :nums = [3,3], target = 6
Output :[0,1]
Tips :
2 <= nums.length <= 104
-109 <= nums[i] <= 109
-109 <= target <= 109
There will only be one valid answer
Advanced : You can come up with a time complexity less than O(n2) The algorithm of ?
solution 1
The first is the easiest to think of , Ideas : Two layers of for loop , Enumerate all the situations , Find subscript .
But the time complexity is O(n^2), Spatial complexity O(1)
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
for (int i = 0; i < nums.size() - 1; i++)
{
for (int j = i + 1; j < nums.size(); j++)
{
if (nums[i] + nums[j] == target)
{
return {
i, j };
}
}
}
return {
};
}
};
See the above Time complexity O(n^2), n= The length of the array , The space complexity is O(1)
leetcode Execution score of
Then I thought of trading space for time , So there is a second solution
solution 2
Ideas : Use one map/unordered_map, here unordered_map be better than map, Then it will traverse once vector, In the process of traversal, each value is 8 reduce ,
Then judge what is after subtraction , Then take the number after subtraction map Of key Inside looking for .
If you find , So we found , The first subscript is map This key Corresponding value(key save vector Value ,value Save subscript );
On the contrary, if it is not found , take vector[i] Add to map Of key On ,value yes i.
map Achieved Red and black trees
Time complex reading O(logn), because map Lookup 、 Delete 、 Increase the time complexity of a series of operations such as stable , All for logn
Complex reading space O(n)
unordered_map Achieved Hashtable
Time complex reading O(c-n), lookup 、 Delete 、 It's fast to add , The time complexity is constant O
Complex reading space O(n)
because unordered_map Internally based on hash table , With (key,value) Store in the form of pairs , So the occupancy rate is high Unordered_map Lookup 、 Delete 、 The added time complexity is unstable , Average is O, Depending on the hash function . In extreme cases it could be O(n)
Look at the diagram
Code implementation map Of
class Solution {
public:
// The second solution .key=value value=index
vector<int> twoSum(vector<int>& nums, int target) {
std::map<int, int> contentmap;
for (int i = 0; i < nums.size(); i++)
{
int less = target - nums[i];
map<int, int>::iterator iter;
iter = contentmap.find(less);
if (iter != contentmap.end())
{
return {
contentmap[less], i };
}
else
{
contentmap[nums[i]] = i;//.insert(pair(nums[i], i));
}
}
return {
};
}
};
Code implementation unordered_map Of , This solution is better than that based on map Solution
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int n = nums.size();
for (int i = 0; i < n; ++i) {
for (int j = i + 1; j < n; ++j) {
if (nums[i] + nums[j] == target) {
return {
i, j};
}
}
}
return {
};
}
};
leetcode Execution score of
I hope I can work out a better solution
thank you , It's not easy to create , Great Xia, please stay … Move your lovely hands , Give me a compliment before you go <( ̄︶ ̄)>
边栏推荐
- Oracle control file loss recovery archive mode method
- Cocos creator collision and collision callback do not take effect
- Getting started with webgl (1)
- [quick start of Digital IC Verification] 20. Basic grammar of SystemVerilog learning 7 (coverage driven... Including practical exercises)
- Pit avoidance: description of null values in in and not in SQL
- 一大波开源小抄来袭
- 【目标检测】YOLOv5跑通VOC2007数据集
- Webgl texture
- [Data Mining] Visual Pattern Mining: Hog Feature + cosinus Similarity / K - means Clustering
- Unity之ASE实现卡通火焰
猜你喜欢
[quick start of Digital IC Verification] 22. Ahb-sramc of SystemVerilog project practice (2) (Introduction to AMBA bus)
Guangzhou Development Zone enables geographical indication products to help rural revitalization
TypeScript 发布 4.8 beta 版本
全日制研究生和非全日制研究生的区别!
【数字IC验证快速入门】19、SystemVerilog学习之基本语法6(线程内部通信...内含实践练习)
知否|两大风控最重要指标与客群好坏的关系分析
webgl_ Enter the three-dimensional world (1)
2022年5月互联网医疗领域月度观察
Implementation of crawling web pages and saving them to MySQL using the scrapy framework
The download button and debug button in keil are grayed out
随机推荐
Super simple and fully automated generation super signature system (cloud Xiaoduo minclouds.com cloud service instance), free application in-house test app distribution and hosting platform, maintenan
What are PV and UV? pv、uv
With 8 modules and 40 thinking models, you can break the shackles of thinking and meet the thinking needs of different stages and scenes of your work. Collect it quickly and learn it slowly
【兰州大学】考研初试复试资料分享
[quick start of Digital IC Verification] 25. AHB sramc of SystemVerilog project practice (5) (AHB key review, key points refining)
2022 all open source enterprise card issuing network repair short website and other bugs_ 2022 enterprise level multi merchant card issuing platform source code
【深度学习】语义分割实验:Unet网络/MSRC2数据集
【数字IC验证快速入门】19、SystemVerilog学习之基本语法6(线程内部通信...内含实践练习)
最安全的证券交易app都有哪些
Annexb and avcc are two methods of data segmentation in decoding
Actually changed from 408 to self proposition! 211 North China Electric Power University (Beijing)
【数字IC验证快速入门】25、SystemVerilog项目实践之AHB-SRAMC(5)(AHB 重点回顾,要点提炼)
Write sequence frame animation with shader
Guangzhou Development Zone enables geographical indication products to help rural revitalization
【数字IC验证快速入门】22、SystemVerilog项目实践之AHB-SRAMC(2)(AMBA总线介绍)
Points for attention in porting gd32 F4 series programs to gd32 F3 series
Pat grade a 1103 integer factorizatio
Excerpted words
Create lib Library in keil and use lib Library
[target detection] yolov5 Runtong voc2007 data set