leetcode日志第一天,求“两数之和”(8.6)

本人是一名什么都不会的“编程”爱好者。偶然一次接触到了LeetCode,打算开始自己的“旅程”。先从算法开始,从简单开始,一步步往上走,在这里做好相关笔记。

Vector常见方法

Vector标识符;

Vector标识符(最大容量);

Vector标识符(最大容量,初始所有值);

int i[4]={1,2,3,4};

什么是“Vector”、“STL”and“push back”

Vector简单来说就是C++里面的一种容器,STL是模板库,其中容器是C++中STL的核心三大组件之一,还有算法、迭代器。push back就是给数据结构添加元素。

用法例如:

Vectorb;

int a[4]={1,2,3,4};

b.push_back(a[1]);

如何求“两数之和”

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

leetcode日志第一天,求“两数之和”(8.6)

刚开始写的,脑袋里没想那么多,直接暴力解了。写着写着,有个地方不对,要返回两个数诶。那该怎么办,后面想到了用数组来解决这个问题(大神轻喷)。下面是第一次写的:

vector twoSum(vector& nums, int target) {

nums = {2,7,11,15};

target = 9;

vector p;

int i;

for(i=1;i<3;i++)

{

if(nums[0]+nums[i]==9)

{

p.push_back(0);

p.push_back(i);

}

}

for(i=2;i<3;i++)

{

if(nums[1]+nums[i]==9)

{

p.push_back(1);

p.push_back(i);

}

}

if(nums[2]+nums[3]==9)

{

p.push_back(2);

p.push_back(3);

}

return p;

}

后面就睡了,觉得这样写实在是太乱了,脑瓜子突然想到了点规律,就有了下面的:

leetcode日志第一天,求“两数之和”(8.6)

自己也不知道为什么越写越糊涂了,忘记了多个语句要加括号。除了这种暴力解法,还有其他的解法~欢迎大家在下方评论交流哟~


分享到:


相關文章: