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;
    }
};
相关推荐
Z9fish几秒前
sse哈工大C语言编程练习23
c语言·数据结构·算法
ArturiaZ几秒前
【day36】
数据结构·c++·算法
山河君5 分钟前
四麦克风声源定位实战:基于 GCC-PHAT + 最小二乘法实现 DOA
算法·音视频·语音识别·信号处理·最小二乘法·tdoa
额,不知道写啥。11 分钟前
P5354 [Ynoi Easy Round 2017] 由乃的 OJ
java·开发语言·算法
代码无bug抓狂人11 分钟前
C语言之单词方阵——深搜(很好的深搜例题)
c语言·开发语言·算法·深度优先
im_AMBER24 分钟前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
Polaris北26 分钟前
第二十九天打卡
算法
样例过了就是过了33 分钟前
LeetCode热题100 环形链表 II
数据结构·算法·leetcode·链表
码农幻想梦34 分钟前
3472. 八皇后(北京大学考研机试题目)
考研·算法·深度优先
岛雨QA1 小时前
递归「Java数据结构与算法学习笔记5」
数据结构·算法