1. 两数之和
解法一:暴力解法
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<vector>
using namespace std;
vector<int> twoSum(vector<int>& nums, int target);int main() {vector<int>nums = { 2,7,11,15 };vector<int>p;vector<int>::iterator it;int target = 9;p = twoSum(nums, target);for (it = p.begin(); it != p.end(); it++) {cout << *it << ' ';}
}
vector<int> twoSum(vector<int>& nums, int target) { //暴力解法/*算法思想:两个指针,一个指针指向当前元素,一个指针向后遍历,看哪两个数相加等于它*/vector<int>ans;for (int i = 0; i < nums.size(); i++) {for (int j = i + 1; j < nums.size(); j++) {if (nums[i] + nums[j] == target) {ans.push_back(i);ans.push_back(j);return ans;}}}return ans;
}
哈希表使用方法:
C++中使用哈希表(unordered_map)的一些常用操作方法_C 语言_脚本之家 (jb51.net)