力扣(LeetCode)刷题笔记
给定一个整数数组 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)刷题笔记相关推荐
- Leetcode-How-What 力扣Leetcode刷题指南
Leetcode-How-What 力扣Leetcode刷题指南 About the way how to use Leetcode wisely for preparing the intervie ...
- 力扣(LeetCode)刷题,简单+中等题(第35期)
力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升. 第1题:解码异或后的排列 试题要求如下: 回答(C语言): /*** Note: ...
- 力扣(LeetCode)刷题,简单+中等题(第34期)
目录 第1题:整数转罗马数字 第2题:电话号码的字母组合 第3题:二叉树的所有路径 第4题:砖墙 第5题:下一个排列 第6题:括号生成 第7题:删除并获得点数 第8题:全排列 第9题:颜色分类 第10 ...
- 力扣(LeetCode)刷题,简单+中等题(第33期)
目录 第1题:Z 字形变换 第2题:删除字符串中的所有相邻重复项 第3题:基本计算器 II 第4题:螺旋矩阵 第5题:螺旋矩阵 II 第6题:盛最多水的容器 第7题:删除有序数组中的重复项 II 第8 ...
- 力扣(LeetCode)刷题,简单+中等题(第32期)
目录 第1题:数组的度 第2题:托普利茨矩阵 第3题:爱生气的书店老板 第4题:翻转图像 第5题:有效的数独 第6题:无重复字符的最长子串 第7题:区域和检索 - 数组不可变 第8题:二维区域和检索 ...
- 力扣(LeetCode)刷题,简单+中等题(第31期)
目录 第1题:同构字符串 第2题:最后一块石头的重量 第3题:最小路径和 第4题:键盘行 第5题:存在重复元素 II 第6题:两数相加 第7题:三个数的最大乘积 第8题:等价多米诺骨牌对的数量 第9题 ...
- 力扣(LeetCode)刷题,简单+中等题(第30期)
目录 第1题:单词规律 第2题:找不同 第3题:在排序数组中查找元素的第一个和最后一个位置 第4题:使用最小花费爬楼梯 第5题:寻找峰值 第6题:字符串中的第一个唯一字符 第7题:两个数组的交集 II ...
- 力扣(LeetCode)刷题,简单+中等题(第29期)
目录 第1题:分割数组为连续子序列 第2题:翻转矩阵后的得分 第3题:寻找旋转排序数组中的最小值 第4题:乘积最大子数组 第5题:不同路径 第6题:判断路径是否相交 第7题:摆动序列 第8题:单调递增 ...
- 力扣(LeetCode)刷题,简单+中等题(第28期)
目录 第1题:翻转单词顺序 第2题:顺时针打印矩阵 第3题:总持续时间可被 60 整除的歌曲 第4题:字符串的最大公因子 第5题:上升下降字符串 第6题:将数组分成和相等的三个部分 第7题:可被 5 ...
- 力扣(LeetCode)刷题,简单题(第27期)
目录 第1题:独一无二的出现次数 第2题:速算机器人 第3题:岛屿的周长 第4题:按照频率将数组升序排序 第5题:根据数字二进制下 1 的数目排序 第6题:能否连接形成数组 第7题:强整数 第8题:查 ...
最新文章
- 使用阿里云发布分布式网站,开发时候应该注意什么?
- 七周七并发之线程与锁
- 利用GetPrivateProfileString读取配置文件(.ini)
- 【django】视图和URL
- (亲试有效)如何完美更换WordPress网站的域名
- 使用jQuery的hover事件在IE中不停闪动的解决方法
- php语言的四种循环控制语句,PHP循环控制语句
- Scrapy 爬虫去重效率优化之 Bloom Filter的算法的对接
- Python_异常和模块
- 7教程统计意义_学渣的医学统计学自救笔记(一)
- python 爬虫生成csv文件和图_Python简单爬虫导出CSV文件的实例讲解
- 归并排序java(内附超详解图文讲解)
- 数据库课程设计专题-数据库课程设计大作业作业列表【建议在校生收藏】
- matlab乘方报错,Matlab精炼语法
- f452虚拟服务器,中兴f452网关,超级用户的密码如何获得,启动路由功能
- TensorFlow北大公开课学习笔记-4.3滑动平均
- ajax readystate为1,Ajax readyState总是等于1
- 水溶性羧基化 CdSe/ZnS 量子的特点
- Python netCDF4
- 毕设-基于LoRa的智能农业大棚(一)
热门文章
- win10怎么设置计算机语言,Win10系统怎么设置中文语言_windows10怎么把系统语言设置成中文...
- git官网 中文教程 使用手册 说明书
- vue3中使用tsx
- Apache Solr任意文件读取漏洞复现
- matlab中portcons,马柯维茨均值-方差模型
- 从大厂离职后,AI 大神们选择加入 AI 初创公司
- 诺基亚java闪退_手机程序闪退怎么办?使用这三种办法,即可轻松搞定
- java产生随机英文名_Java之随机生成用户数据
- python使用代理ip访问网站_python使用代理ip访问网站的实例
- android怎么测试网速,Android网速测试App(三)