vector<int>twoSum(vector<int>& nums,int target){
unordered_map<int,int> imap;int n = nums.size();for(int i =0; i < n; i++){
if(imap.find(target-nums[i])!= imap.end())return{
imap[target-nums[i]], i};
imap[nums[i]]= i;}return{
};}
2.两数之和
两个链表
ListNode*addTwoNumbers(ListNode* l1, ListNode* l2){
ListNode* n1 = l1,*n2 = l2;int carry =0, sum =0;
ListNode* dummy =newListNode(0);
ListNode* cur = dummy;while(n1 || n2){
sum = carry;if(n1){
sum += n1->val;
n1 = n1->next;}if(n2){
sum += n2->val;
n2 = n2->next;}
cur->next =newListNode(sum %10);
cur = cur->next;
carry = sum /10;}if(carry){
cur->next =newListNode(carry);}return dummy->next;}
3.无重复字符的最长子串
intlengthOfLongestSubstring(string s){
int n = s.size();int le =0, ri =0;int imax =0;
unordered_map<char,int> window;while(ri < n){
char c = s[ri++];
window[c