leetcode_001两数之和

1. 题目

两数之和

2. 题意

找到数组中和为给定值的两个值的坐标。

3. 题解

3.1 暴力

两重循环,直接列举出来。

cpp 复制代码
class Solution1 {
public:
    vector<int> twoSum(vector<int>& nums, int target) {


        vector<int> res;
        int size = nums.size();
        for (int i = 0;i < size; ++i) {
            for ( int j = i + 1; j < size; ++j) {
                if (nums[i] + nums[j] == target) {
                    res={i,j};
                    return res;
                }
            }
        }

        return res;
    }
};

3.2 哈希表

查找hash(val) 是否存在,在表中则取出得到答案;否则将当前位置存入表中hash(target - val)

cpp 复制代码
class Solution2 {
public:
    vector<int> twoSum(vector<int>& nums, int target) {

        unordered_map<int,int> um;
        int sz = nums.size();

        vector<int> res;
        for ( int i = 0;i < sz; ++i) {
            if ( um.find(nums[i]) != um.end() ){
                res = {um[nums[i]], i};
                return res;
            }
            else {
                um[target - nums[i]] = i;
            }
        }


        return res;
    }
};
相关推荐
dapeng28701 小时前
分布式系统容错设计
开发语言·c++·算法
qq_417695051 小时前
代码热修复技术
开发语言·c++·算法
Liu628888 小时前
C++中的工厂模式高级应用
开发语言·c++·算法
AI科技星8 小时前
全尺度角速度统一:基于 v ≡ c 的纯推导与验证
c语言·开发语言·人工智能·opencv·算法·机器学习·数据挖掘
参.商.8 小时前
【Day41】143. 重排链表
leetcode·golang
条tiao条9 小时前
KMP 算法详解:告别暴力匹配,让字符串匹配 “永不回头”
开发语言·算法
干啥啥不行,秃头第一名9 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
zzh940779 小时前
Gemini 3.1 Pro 硬核推理优化剖析:思维织锦、动态计算与国内实测
算法
2301_807367199 小时前
C++中的解释器模式变体
开发语言·c++·算法
愣头不青10 小时前
617.合并二叉树
java·算法