LOADING

加载过慢请开启缓存 浏览器默认开启

2023/10/24

每日一题(再看两数之和)+吐槽

. 两数之和

力扣题目链接(opens new window)

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

//使用哈希表重新解决力扣第一题两数之和
// Created by 徐昊岩 on 2023/10/24.
//第一次写是靠两遍for循环解决的,最好的时间是334ms,结果用了哈希表后,好家伙,8ms解决

//当你需要执行“查找”操作时,那么你需要想到使用哈希表来减少查找时间,cpp中,数组、unordered_map/set都是基于哈希表实现的,并且注意,把需要查找的值记作key
//有问题逐步模拟一遍io
#include "vector"
#include "unordered_map"
using namespace std;
class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        unordered_map<int,int> umap;
        for (int i = 0; i < nums.size(); ++i)  {
            if(umap.find(target-nums[i])!=umap.end()){
                return {i,umap.at(target-nums[i])};
            } else umap.emplace(nums[i],i);
        }
        return {};
    }
};
int main(){
    vector<int> a={3,2,4};
    Solution s1;
    s1.twoSum(a,6);
}

Python深度学习环境又炸了,想看指静脉识别没看成,忙物理实验去了

时间真不够啊,得提高效率!

C:\Users\徐昊岩\PycharmProjects\pythonProject\helloworld\Lib\site-packages\Scripts\python.exe