两数之和

    技术2022-07-11  77

    #两数之和

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

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

    示例:

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

    因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/two-sum 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    #题解

    class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { for(int i=0;i<nums.size()-1;i++){ for( int j=i+1;j<nums.size();j++){ if(nums[i]+nums[j]==target) return {i,j}; } } return {}; } };

    #注意 1、数组越界 i++引起 i>vector.capacity() LeetCode的非法内存访问会检测出来

    2、vector.size() vector.capacity() sizeof(vector v)的区别 vector.size()指的是vector的使用大小,比如说vector有10个盒子,只用了8个,vector.size()就等于8

    vector.capacity()指的是总大小,上一个vector例子里,vector.capacity()等于10

    //这个有待确定 sizeof(vector)取决于vector里面存放的数据类型,10个bool就是10个字节,计算起来等于vector.capacity()*单个数据类型大小

    3、向vector中插入元素 用数组初始化vector int a[] = { 0 , 1 , 2 , -1 , 4 }; vector sum(a,a+sizeof(a)/sizeof(a[0]));

    直接向vector中插入多组元素 vector< vector > r; r.push_back({num[i],num[j],num[k]});

    Processed: 0.011, SQL: 9