#include <bits/stdc++.h>
using namespace std;
vector<int> twoS(vector<int>& nums, int target) {
unordered_map<int,int>umap;
vector<int>ans;
for(int i =0; i<nums.size(); i++) {
int comp = target - nums[i];
if(umap.find(comp) != umap.end()) {
ans.push_back(umap[comp]);
ans.push_back(i);
return ans;
}
umap[nums[i]] = i;
}
// return empty
return ans;
}
/*
Example 2:
Input: nums = [3,3],
target = 6
Output: [0,1]
*/
int main() {
vector<int>nums = {3,3};
int target = 6;
vector<int>res = twoS(nums, target);
cout<< res[0]<<" "<<res[1]<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2ZWN0b3I8aW50PiB0d29TKHZlY3RvcjxpbnQ+JiBudW1zLCBpbnQgdGFyZ2V0KSB7Cgl1bm9yZGVyZWRfbWFwPGludCxpbnQ+dW1hcDsKCXZlY3RvcjxpbnQ+YW5zOwoJZm9yKGludCBpID0wOyBpPG51bXMuc2l6ZSgpOyBpKyspIHsKCQlpbnQgY29tcCA9IHRhcmdldCAtIG51bXNbaV07CgkJCgkJaWYodW1hcC5maW5kKGNvbXApICE9IHVtYXAuZW5kKCkpIHsKCQkJCWFucy5wdXNoX2JhY2sodW1hcFtjb21wXSk7CgkJCQlhbnMucHVzaF9iYWNrKGkpOwoJCQkJcmV0dXJuIGFuczsKCQkJfQoJCQkKCQkJdW1hcFtudW1zW2ldXSA9IGk7Cgl9CgkvLyByZXR1cm4gZW1wdHkKCXJldHVybiBhbnM7Cn0KCi8qCkV4YW1wbGUgMjoKSW5wdXQ6IG51bXMgPSBbMywzXSwgCnRhcmdldCA9IDYKT3V0cHV0OiBbMCwxXQoqLwoKaW50IG1haW4oKSB7Cgl2ZWN0b3I8aW50Pm51bXMgPSB7MywzfTsKCWludCB0YXJnZXQgPSA2OwoJdmVjdG9yPGludD5yZXMgPSB0d29TKG51bXMsIHRhcmdldCk7Cgljb3V0PDwgcmVzWzBdPDwiICI8PHJlc1sxXTw8ZW5kbDsKCXJldHVybiAwOwp9