Two Sum
2018-06-18 03:51:47来源:未知 阅读 ()
leetcode的第一题,很简单。
题目如下
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9
return [0, 1].
时间复杂度为O(n)的一种解法为:
1 int* twoSum(int* nums, int numsSize, int target) 2 { 3 int index[100001] = {0}, *index_plus_one = index + 50000;//索引从index数组的第50000个元素开始,避免出现负数索引报错; 4 for (int i = 0; i < numsSize; i++) 5 { 6 int rest = target - nums[i]; 7 if (index_plus_one[rest]) 8 { 9 //如果rest这个索引已经计算过了,那么就可以得出答案 10 int *ans = malloc(sizeof(int) * 2); 11 ans[0] = i; 12 ans[1] = index_plus_one[rest] - 1; 13 return ans; 14 } 15 else 16 index_plus_one[nums[i]] = i + 1;//如果rest这个索引没有计算过,那么就将 index_plus_one[nums[i]] 标记为大于0; 17 } 18 return NULL; 19 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:类C编译器 C代码实现
下一篇:C语言 大小写字母转换
- leetcode 反转链表 2020-06-06
- [题记-动态规划] 编辑距离 - leetcode 2020-04-06
- [题记]字符串转换整数-leetcode 2020-04-03
- [题记]有效括号的嵌套深度-leetcode 2020-04-01
- [题记-数学-面试题]约瑟夫环-leetcode 2020-03-30
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash