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

注:你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

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

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

解法一(C之暴力法):

注:执行用时196ms,内存消耗7.5M

int* twoSum(int* nums, int numsSize, int target, int* returnSize)   //numsSize为数组元素个数
{*returnSize = 2;  //返回值的个数为2int i,j;int* result = NULL;for(i = 0; i < numsSize-1; ++i){for(j = i+1; j < numsSize; ++j){if(nums[i] + nums[j] == target){result = (int*)malloc(sizeof(int)*2); //给整形指针开辟空间,其相当于一个整形数组result[0] = i;result[1] = j;return result; //找到和为目标值的那两个整数,返回他们的数组下标}}}return 0;
}

解法二(C++之暴力法):

注:执行用时212ms,内存消耗9.2M

class Solution
{
public:vector<int> twoSum(vector<int>& nums, int target) {int n = nums.size();vector<int> result;for(int i = 0; i < n-1; ++i){for(int j = i+1; j < n; ++j){if(nums[i]+nums[j] == target){result.push_back(i);result.push_back(j);return result;  //找到和为目标值的那两个整数,返回他们的数组下标}}}return result;}
};

解法三(C++之两遍哈希表):

一个简单的实现使用了两次迭代。在第一次迭代中,我们将每个元素的值和它的索引添加到表中。然后,在第二次迭代中,我们将检查每个元素所对应的目标元素(target - nums[i]target−nums[i])是否存在于表中。注意,该目标元素不能是 nums[i]nums[i] 本身!

注:执行用时16ms,内存消耗10.5M

class Solution
{
public:vector<int> twoSum(vector<int>& nums, int target) {int n = nums.size();map<int,int> array;  //建立hash表存放数组元素vector<int> result(2,-1);  //存放结果,初始化为两个-1for(int i = 0; i < n; ++i){int x = target - nums[i];if(array.count(x) > 0){result[0] = array[x];result[1] = i;break;}array[nums[i]] = i;}return result;  //找到和为目标值的那两个整数,返回他们的数组下标}
};

解法四(C++之一遍哈希表):

注:执行用时12ms,内存消耗10.3M

class Solution
{
public:vector<int> twoSum(vector<int>& nums, int target) {int n = nums.size();map<int,int> array;  //建立hash表存放数组元素vector<int> result(2,-1);  //存放结果,初始化为两个-1for(int i = 0; i < n; ++i){int x = target - nums[i];if(array.count(x) > 0){result[0] = array[x];result[1] = i;break;}array[nums[i]] = i;}return result;  //找到和为目标值的那两个整数,返回他们的数组下标}
};

力扣(LeetCode)刷题笔记相关推荐

  1. Leetcode-How-What 力扣Leetcode刷题指南

    Leetcode-How-What 力扣Leetcode刷题指南 About the way how to use Leetcode wisely for preparing the intervie ...

  2. 力扣(LeetCode)刷题,简单+中等题(第35期)

    力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升. 第1题:解码异或后的排列 试题要求如下: 回答(C语言): /*** Note: ...

  3. 力扣(LeetCode)刷题,简单+中等题(第34期)

    目录 第1题:整数转罗马数字 第2题:电话号码的字母组合 第3题:二叉树的所有路径 第4题:砖墙 第5题:下一个排列 第6题:括号生成 第7题:删除并获得点数 第8题:全排列 第9题:颜色分类 第10 ...

  4. 力扣(LeetCode)刷题,简单+中等题(第33期)

    目录 第1题:Z 字形变换 第2题:删除字符串中的所有相邻重复项 第3题:基本计算器 II 第4题:螺旋矩阵 第5题:螺旋矩阵 II 第6题:盛最多水的容器 第7题:删除有序数组中的重复项 II 第8 ...

  5. 力扣(LeetCode)刷题,简单+中等题(第32期)

    目录 第1题:数组的度 第2题:托普利茨矩阵 第3题:爱生气的书店老板 第4题:翻转图像 第5题:有效的数独 第6题:无重复字符的最长子串 第7题:区域和检索 - 数组不可变 第8题:二维区域和检索 ...

  6. 力扣(LeetCode)刷题,简单+中等题(第31期)

    目录 第1题:同构字符串 第2题:最后一块石头的重量 第3题:最小路径和 第4题:键盘行 第5题:存在重复元素 II 第6题:两数相加 第7题:三个数的最大乘积 第8题:等价多米诺骨牌对的数量 第9题 ...

  7. 力扣(LeetCode)刷题,简单+中等题(第30期)

    目录 第1题:单词规律 第2题:找不同 第3题:在排序数组中查找元素的第一个和最后一个位置 第4题:使用最小花费爬楼梯 第5题:寻找峰值 第6题:字符串中的第一个唯一字符 第7题:两个数组的交集 II ...

  8. 力扣(LeetCode)刷题,简单+中等题(第29期)

    目录 第1题:分割数组为连续子序列 第2题:翻转矩阵后的得分 第3题:寻找旋转排序数组中的最小值 第4题:乘积最大子数组 第5题:不同路径 第6题:判断路径是否相交 第7题:摆动序列 第8题:单调递增 ...

  9. 力扣(LeetCode)刷题,简单+中等题(第28期)

    目录 第1题:翻转单词顺序 第2题:顺时针打印矩阵 第3题:总持续时间可被 60 整除的歌曲 第4题:字符串的最大公因子 第5题:上升下降字符串 第6题:将数组分成和相等的三个部分 第7题:可被 5 ...

  10. 力扣(LeetCode)刷题,简单题(第27期)

    目录 第1题:独一无二的出现次数 第2题:速算机器人 第3题:岛屿的周长 第4题:按照频率将数组升序排序 第5题:根据数字二进制下 1 的数目排序 第6题:能否连接形成数组 第7题:强整数 第8题:查 ...

最新文章

  1. 使用阿里云发布分布式网站,开发时候应该注意什么?
  2. 七周七并发之线程与锁
  3. 利用GetPrivateProfileString读取配置文件(.ini)
  4. 【django】视图和URL
  5. (亲试有效)如何完美更换WordPress网站的域名
  6. 使用jQuery的hover事件在IE中不停闪动的解决方法
  7. php语言的四种循环控制语句,PHP循环控制语句
  8. Scrapy 爬虫去重效率优化之 Bloom Filter的算法的对接
  9. Python_异常和模块
  10. 7教程统计意义_学渣的医学统计学自救笔记(一)
  11. python 爬虫生成csv文件和图_Python简单爬虫导出CSV文件的实例讲解
  12. 归并排序java(内附超详解图文讲解)
  13. 数据库课程设计专题-数据库课程设计大作业作业列表【建议在校生收藏】
  14. matlab乘方报错,Matlab精炼语法
  15. f452虚拟服务器,中兴f452网关,超级用户的密码如何获得,启动路由功能
  16. TensorFlow北大公开课学习笔记-4.3滑动平均
  17. ajax readystate为1,Ajax readyState总是等于1
  18. 水溶性羧基化 CdSe/ZnS 量子的特点
  19. Python netCDF4
  20. 毕设-基于LoRa的智能农业大棚(一)

热门文章

  1. win10怎么设置计算机语言,Win10系统怎么设置中文语言_windows10怎么把系统语言设置成中文...
  2. git官网 中文教程 使用手册 说明书
  3. vue3中使用tsx
  4. Apache Solr任意文件读取漏洞复现
  5. matlab中portcons,马柯维茨均值-方差模型
  6. 从大厂离职后,AI 大神们选择加入 AI 初创公司
  7. 诺基亚java闪退_手机程序闪退怎么办?使用这三种办法,即可轻松搞定
  8. java产生随机英文名_Java之随机生成用户数据
  9. python使用代理ip访问网站_python使用代理ip访问网站的实例
  10. android怎么测试网速,Android网速测试App(三)