当前位置:   article > 正文

Leetcode刷题指南C++(每日更新)_c++ leetcode刷题

c++ leetcode刷题

1.两数之和

两数之和https://leetcode-cn.com/problems/two-sum/

  1. //暴力枚举
  2. class Solution {
  3. public:
  4. vector<int> twoSum(vector<int>& nums, int target) {
  5. int n = nums.size();
  6. for (int i = 0; i < n; ++i) {
  7. for (int j = i + 1; j < n; ++j) {
  8. if (nums[i] + nums[j] == target) {
  9. return {i, j};
  10. }
  11. }
  12. }
  13. return {};
  14. }
  15. };
  1. //哈希表
  2. class Solution {
  3. public:
  4. vector<int> twoSum(vector<int>& nums, int target) {
  5. unordered_map<int, int> hashtable;
  6. for (int i = 0; i < nums.size(); ++i) {
  7. auto it = hashtable.find(target - nums[i]);
  8. if (it != hashtable.end()) {
  9. return {it->second, i};
  10. }
  11. hashtable[nums[i]] = i;
  12. }
  13. return {};
  14. }
  15. };

2.合并两个有序链表

合并两个有序链表https://leetcode-cn.com/problems/merge-two-sorted-lists/

  1. class Solution {
  2. public:
  3. ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
  4. if(list1==nullptr){
  5. return list2;
  6. }else if(list2==nullptr){
  7. return list1;
  8. }else if(list1->val < list2->val){
  9. list1->next = mergeTwoLists(list1->next,list2);
  10. return list1;
  11. }else{
  12. list2->next = mergeTwoLists(list2->next,list1);
  13. return list2;
  14. }
  15. }
  16. };

3.删除有序数组中的重复项

删除有序数组中的重复项icon-default.png?t=M1L8https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/

  1. class Solution {
  2. public:
  3. int removeDuplicates(vector<int>& nums) {
  4. int n = nums.size();
  5. if(n == 0){
  6. return 0;
  7. }
  8. int fast = 1, slow = 1;
  9. while(fast < n){
  10. if(nums[fast] !=nums[fast - 1]){
  11. nums[slow] = nums[fast];
  12. ++slow;
  13. }
  14. ++fast;
  15. }
  16. return slow;
  17. }
  18. };

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/567789
推荐阅读
相关标签
  

闽ICP备14008679号