Leetcode刷题指南C++(每日更新)
1.两数之和
两数之和https://leetcode-cn.com/problems/two-sum/
//暴力枚举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; i second, i}; } hashtable[nums[i]] = i; } return {}; }};
2.合并两个有序链表
合并两个有序链表https://leetcode-cn.com/problems/merge-two-sorted-lists/
class Solution {public: ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) { if(list1==nullptr){ return list2; }else if(list2==nullptr){ return list1; }else if(list1->val val){ list1->next = mergeTwoLists(list1->next,list2); return list1; }else{ list2->next = mergeTwoLists(list2->next,list1); return list2; } }};
3.删除有序数组中的重复项
删除有序数组中的重复项https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
class Solution {public: int removeDuplicates(vector& nums) { int n = nums.size(); if(n == 0){ return 0; } int fast = 1, slow = 1; while(fast < n){ if(nums[fast] !=nums[fast - 1]){ nums[slow] = nums[fast]; ++slow; } ++fast; } return slow; }};