leetcode_two sum
来源:互联网 发布:windows 8.1专业版激活 编辑:程序博客网 时间:2024/05/17 22:24
这是leetcode第一道题目,属于easy类型。题目的实例内容是:
Given nums = [2,7,11,15], target = 9,Beacause nums[0]+nums[1] = 9return [0,1]
这道题用到的主要算法步骤如下:
将数组按照从小到大的顺序排序同时从数组num两端开始扫描(序号分别为i,j)判断num[i]+num[j]是否等于target若num[i]+num[j] > target,则还需要减小大数num[j],也就是j--若num[i]+num[j] < target, 则还需要增加小数num[i],也就是i++
本题需要解决的两个主要问题有:
找到2个目标数如何返回对应的下标
对于问题2的解决办法,我用的是一种很笨的方法,也就是再创建一个新的数组来存储原始的未排序的数组,然后将找到的目标
数与新的数组一一对应查找,直到找到目标数在数组中的位置。
具体解决代码如下(C++)
class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { int i, j; i = 0; j = nums.size() - 1; vector<int> two_sum; vector<int> temp; temp = nums; sort(nums.begin(), nums.end()); while(i < j) { int sum = nums[i]+ nums[j]; if(sum == target) { for(int k = 0; k < temp.size(); k ++) { if(temp[k] == nums[i] || temp[k] == nums[j]) { two_sum.push_back(k); } } return two_sum; } else if(sum > target) { j --; } else { i ++; } } return two_sum; }};
0 0
- leetcode_Two Sum
- Leetcode_Two Sum
- LeetCode_Two Sum
- LeetCode_Two Sum
- LeetCode_Two Sum
- LeetCode_Two Sum
- leetcode_two sum
- Leetcode_Two Sum
- leetcode_Two sum
- leetcode_Two Sum
- leetcode_two sum()
- Leetcode_Two Sum II
- leetcode_Two Sum II
- Leetcode_two-sum (c++ and python version)
- Sum
- sum
- sum
- Sum
- json 请求后台,并接受返回的list数据
- 第四周—C语言 输出自己名的首字母
- 图像结构样式分开生成的生成模型论文代码
- 一个模拟问题
- Part 2 of 2 Method of complements作业
- leetcode_two sum
- UE4 读取本地图片
- unity中的TXT存储与读取
- 巨量奇幻炫酷照片来袭 - 人工智能艺术照片赏析
- keras中文文档
- dpdk环境搭建之命令搭建
- Linux的链接
- POJ 3735 Training little cats(矩阵快速幂)
- Weex $el(id) 与 $vm(id) 区别