当前位置:网站首页>Sum of two numbers, sum of three numbers (sort + double pointer)
Sum of two numbers, sum of three numbers (sort + double pointer)
2022-07-05 23:02:00 【BugMaker-shen】
List of articles
One 、 And for s Two numbers of
Ascending , Use double pointer to traverse
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int l = 0;
int r = nums.size() - 1;
while(l < r){
if(nums[l] + nums[r] == target){
return {
nums[l], nums[r]};
}else if(nums[l] + nums[r] > target){
r--;
}else{
l++;
}
}
return {
};
}
};
Two 、 Sum of two numbers
And hash table storage has been traversed and not found and for target Number of numbers ,key Value ,value Subscript the element
use target Subtract the number of current traversals , Look up... In the hash table , Find it and return the current subscript (i) And the subscript taken from the hash table (target - nums[i]). If not, save the current element value and subscript in the hash table
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> mp; // mp[val] = index
for(int i = 0; i < nums.size(); i++){
if (mp.find(target - nums[i]) != mp.end()){
return {
i, mp[target - nums[i]]};
}else{
mp[nums[i]] = i;
}
}
return {
};
}
};
3、 ... and 、 Sum of three numbers
Sort with + The double pointer method , The time complexity is O ( N 2 ) O(N^2) O(N2)
class Solution {
public:
vector<vector<int>> threeSum(vector<int>& nums) {
sort(nums.begin(), nums.end(), less<int>());
set<vector<int>> ans;
for(int l = 0; l < (int)nums.size() - 2 && nums[l] <= 0; l++){
int mid = l + 1;
int r = nums.size() - 1;
while(mid < r){
int sum = nums[l] + nums[mid] + nums[r];
if(sum == 0){
ans.insert({
nums[l], nums[mid], nums[r]});
r--;
while (mid < r && nums[r] == nums[r + 1]) r--; // while Circulation is used for weight removal
mid++;
while (mid < r && nums[mid] == nums[mid - 1]) mid++; // while Circulation is used for weight removal
}else if(sum > 0){
r--;
while (mid < r && nums[r] == nums[r + 1]) r--; // while Circulation is used for weight removal
}else{
mid++;
while (mid < r && nums[mid] == nums[mid - 1]) mid++; // while Circulation is used for weight removal
}
}
}
return vector<vector<int>> (ans.begin(), ans.end());
}
};
Four 、 The closest sum of three
unsorted , Direct violence backtracking , Overtime
class Solution {
public:
vector<int> choice;
int gap = INT_MAX;
int target_;
int ans;
void func(int i, const vector<int>& nums){
if(choice.size() == 3){
int sum = accumulate(choice.begin(), choice.end(), 0);
if (abs(target_ - sum) < gap) {
ans = sum;
gap = abs(target_ - sum);
}
}else{
for(int j = i; j < nums.size(); j++){
choice.push_back(nums[j]);
func(j + 1, nums);
choice.pop_back();
}
}
}
int threeSumClosest(vector<int>& nums, int target) {
target_ = target;
func(0, nums);
return ans;
}
};
Sort + Double pointer
class Solution {
public:
int threeSumClosest(vector<int>& nums, int target) {
sort(nums.begin(), nums.end(), less<int>());
long ans = INT_MAX;
for(int l = 0; l < (int)nums.size() - 2; l++){
int mid = l + 1;
int r = nums.size() - 1;
while(mid < r){
int sum = nums[l] + nums[mid] + nums[r];
if(abs(sum - target) < abs(ans - target)){
// sum and target Distance reduction of , Update ans
ans = sum;
}
if(sum == target){
// And for target, Then distance target lately , by 0, Returns the current sum
return sum;
}else if(sum > target){
r--;
}else{
mid++;
}
}
}
return ans;
}
};
边栏推荐
- Masked Autoencoders Are Scalable Vision Learners (MAE)
- TOPSIS code part of good and bad solution distance method
- SPSS analysis of employment problems of college graduates
- 30 optimization skills about mysql, super practical
- Global and Chinese markets of industrial pH meters 2022-2028: Research Report on technology, participants, trends, market size and share
- Global and Chinese market of water treatment technology 2022-2028: Research Report on technology, participants, trends, market size and share
- 一文搞定垃圾回收器
- Paddle Serving v0.9.0 重磅发布多机多卡分布式推理框架
- Unity Max and min constraint adjustment
- [secretly kill little buddy pytorch20 days] - [Day2] - [example of picture data modeling process]
猜你喜欢
Expectation, variance and covariance
东南亚电商指南,卖家如何布局东南亚市场?
SPSS analysis of employment problems of college graduates
VOT Toolkit环境配置与使用
Selenium+pytest automated test framework practice
audiopolicy
Nangou Gili hard Kai font TTF Download with installation tutorial
PLC编程基础之数据类型、变量声明、全局变量和I/O映射(CODESYS篇 )
Detailed explanation of pointer and array written test of C language
openresty ngx_lua请求响应
随机推荐
分布式解决方案选型
Yiwen gets rid of the garbage collector
513. Find the value in the lower left corner of the tree
Negative sampling
视频标准二三事
Ultrasonic sensor flash | LEGO eV3 Teaching
Global and Chinese markets of industrial pH meters 2022-2028: Research Report on technology, participants, trends, market size and share
Common model making instructions
CJ mccullem autograph: to dear Portland
Global and Chinese market of networked refrigerators 2022-2028: Research Report on technology, participants, trends, market size and share
Selenium+Pytest自动化测试框架实战
LeetCode145. Post order traversal of binary tree (three methods of recursion and iteration)
[screen recording] how to record in the OBS area
Nacos installation and service registration
Metasploit (MSF) uses MS17_ 010 (eternal blue) encoding:: undefined conversionerror problem
2022 G3 boiler water treatment simulation examination and G3 boiler water treatment simulation examination question bank
Solve the problem of "no input file specified" when ThinkPHP starts
Hainan Nuanshen tea recruits warmhearted people: recruitment of the product experience recommender of Nuanshen multi bubble honey orchid single cluster
d3dx9_ How to repair 31.dll_ d3dx9_ 31. Solution to missing DLL
Evolution of APK reinforcement technology, APK reinforcement technology and shortcomings