美文网首页
【2020-11-12】1. 两数之和

【2020-11-12】1. 两数之和

作者: EthynylRadical | 来源:发表于2020-11-17 20:17 被阅读0次

学长说的好,“解决焦虑的根本途径是刷Leetcode”。

1. 两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

示例:

给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

思路

由于是第一次刷题,数据结构基本都已经忘的差不多了,只记得最基础的树、链表之流,此题最关键的是解决如何寻找target - num[i]nums中的位置,做题时没想到合适的解决办法,只能从最暴力的O(n2)下手。
如果将nums中的全部元素求和,在区分两个相加数位置 最蠢 的情况下,会得到一个N* N的矩阵。在此基础上,不区分两个加数 第二蠢 的情况下,只取N* N矩阵的上三角矩阵(右上),会节省一半的运算量,但是时间复杂度仍然保持在O(n2)。

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        vector<int> ans(2);                                                               //此处可以不用额外定义一个vector
        for(int i = 0; i < nums.size()-1; i++){
            for(int j = i+1; j < nums.size(); j++){
                if(nums[i] + nums[j] == target){
                    ans = {i, j};
                    return ans;                                                           //return {i, j};
                } 
            }
        }
        return ans;                                                                       //return {};
    }
};

实际上这里问题的本质是寻找一种有键值关系数据结构,这里的利用键值关系来优化寻找target - num[i]时间复杂度。之前一直认为Python中的字典的键值之间没有任何关系,在此悔过

Game Changer: Hash Table - 哈希表

哈希表是一种使用哈希函数组织数据,以支持快速插入和搜索的数据结构。
有两种不同类型的哈希表:哈希集合哈希映射
哈希集合是集合数据结构的实现之一,用于存储非重复值
哈希映射是映射数据结构的实现之一,用于存储(key, value)键值对
标准模板库的帮助下,哈希表是易于使用的。大多数常见语言(如Java,C ++ 和 Python)都支持哈希集合和哈希映射。
作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/hash-table/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章

  • 【2020-11-12】1. 两数之和

    学长说的好,“解决焦虑的根本途径是刷Leetcode”。 1. 两数之和[https://leetcode-cn....

  • 1. 两数之和

    https://leetcode-cn.com/problems/two-sum/description/给定一个...

  • 1. 两数之和

    内容 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素...

  • 1. 两数之和

    20180919-摘抄自1. 两数之和 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每...

  • 1. 两数之和

    1、暴力法,求target-num[current]是否满足 2、哈希表

  • 1. 两数之和

    代码 分析 主要是利用map集合来存储值,存储的是下一下要找的值和当前的索引,然后找到的时候就可以知道这两个索引

  • 1. 两数之和

    一、题目原型: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同...

  • 1.两数之和

    题目: 给定一个整数数列,找出其中和为特定值的那两个数。 你可以假设每个输入都只会有一种答案,同样的元素不能被重用...

  • 1.两数之和

    leetcode算法学习,打算每日1篇 自己写的代码太low就不上了,主要是对最优代码的注释和自己的小小理解 题目...

  • 1. 两数之和

    LeetCode 的算法题 PHP解法记录 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假...

网友评论

      本文标题:【2020-11-12】1. 两数之和

      本文链接:https://www.haomeiwen.com/subject/xmtmbktx.html