暴力解法
class Solution {
public:
vector twoSum(vector& nums, int target) {
int n = nums.size();
for (int i = 0; i < n; ++i) {
for (int j = i + 1; j < n; ++j) {
if (nums[i] + nums[j] == target) {
return {i, j};
}
}
}
return {};
}
};
哈希解法
无序快速查找
class Solution {
public:
vector twoSum(vector& nums, int target) {
unordered_map hashtable; //建立无序哈希表
for (int i=0; isecond,i}; //访问value it->first访问key
}
hashtable[nums[i]] = i; //加入值 hashtable[key] = value
}
return {};
}
};
2.有序数组合并
暴力解法 :直接合并两个数组进行排序
但这种方法没有用到排序的特征
class Solution {
public:
void merge(vector& nums1, int m, vector& nums2, int n) {
for (int i=0; i
双指针
class Solution {
public:
void merge(vector& nums1, int m, vector& nums2, int n) {
int p1=0;
int p2=0;
int cur;
int nums3[m+n]; //创建一个m+n的空数组
while(p1



