【C++LeetCode】【热题100】两数之和【简单】-不同效率的题解【2】

题目:

暴力方法:

cpp 复制代码
class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        vector<int> res;
        bool flag=false;
        for(int i=0;i<nums.size();i++){
            int tempValue=target-nums[i];//求解另一个值
            for(int j=i+1;j<nums.size();j++){
                if(tempValue==nums[j]){
                    res.push_back(i);
                    res.push_back(j);
                    flag=true;
                    break;
                }
            }
            if(flag){
                break;
            }
        }
        return res;
    }
};

优化方法:

cpp 复制代码
class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        vector<int> res1;
        //有重复的值且是 目标值的半倍情况
        int count=0;
        for(int i=0;i<nums.size();i++){
            if(nums[i]==target/2){
                count+=1;
                res1.push_back(i);
            }
        }
        if(count==2){
            return res1;
        }
        vector<int> res;

        //无重复的值情况
        std::unordered_map<int,int> hashMap;
        for(int i=0;i<nums.size();i++){
            if(target==2*nums[i]){
                continue;//去除干扰的二倍对称值
            }
            hashMap[target-nums[i]]=i;//求解另一个值    <另一个值,索引>
        }
        for(int i=0;i<nums.size();i++){
            auto it=hashMap.find(nums[i]);
            if(it!=hashMap.end()){
                res.push_back(i);
                res.push_back(it->second);
                break;
            }
        }
        return res;
    }
};
相关推荐
bksczm10 分钟前
Linux之信号量(POSIX标准)
java·开发语言
吠品21 分钟前
PHP里取月份最后一天的几种方式
java·开发语言·eureka
星子yu22 分钟前
【学习】怎么学好数据结构
数据结构·学习
CallmeFoureyes23 分钟前
使用 C# 提取 Word 文档中的表格数据
开发语言·c#·word
gugucoding39 分钟前
2. 【Java】搭建Java开发环境
java·开发语言
多加点辣也没关系40 分钟前
JavaScript|第9章:对象 — 基础
开发语言·javascript·ecmascript
2601_949818091 小时前
Vector从入门到应用(C++ STL动态数组万字全解
开发语言·c++
汉克老师1 小时前
GESP2026年6月认证C++八级( 第三部分编程题(1、线网建设))精讲
c++·最小生成树·排序·kruskal·并查集·gesp8级
胖大和尚1 小时前
Linux 内核工程师、HPC工程师、C++工程师
c++·kernel·hpc
alphaTao1 小时前
LeetCode 每日一题 2026/7/6-2026/7/12
算法·leetcode