小工具知识网

当前位置: 首页 > 行业知识 > 算法刷题Day1 | 704.二分查找、27.移除元素

行业知识

算法刷题Day1 | 704.二分查找、27.移除元素

2026-11-09 15:08:09 来源:互联网转载

目录

  • 0 引言
  • 1 二分查找
    • 1.1 我的解题
    • 1.2 修改后
    • 1.3 总结
    • 2 移除元素
      • 2.1 暴力求解
      • 2.2 双���针法(快慢指针)
        • ‍♂️ 作者:海码007
        • 专栏:算法专栏
        • 标题:代码随想录算法训练营第一天 | 704.二分查找、27.移除元素
        • ❣️ 寄语:书到用时方恨少,事非经过不知难!

          0 引言

          1 二分查找

          • 文档讲解:https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html
          • 视频讲解:https://www.bilibili.com/video/BV1fA4y1o715/
          • 做题状态:有思路但是不清晰,对于循环的判断条件还有区间的变换存在疑惑(这些就是二分法的易错点)

            1.1 我的解题

            class Solution {public:    int search(vector& nums, int target) {        int left, right, middle;        left = 0;        right = nums.size() - 1;        if (right == left)        {            if (target == nums[left])            {                return left;            }            else            {                return -1;            }        }                while (right != left + 1)        {            middle = (right - left) / 2 + left;            cout                 return middle;            }            else if (target  nums[middle])            {                left = middle;            }            else            {                right = middle;            }        }        if (target == nums[left])        {            return left;        }        else if (target == nums[right])        {            return right;        }        else        {            return -1;        }    }};public:   int search(vector       int left, right, middle;       left = 0;       right = nums.size() - 1;              while (right = left)       {           middle = (right - left) / 2 + left;           cout                return middle;           }           else if (target  nums[middle])           {               left = middle + 1;           }           else           {               right = middle - 1;           }       }       return -1;   }};public:    int removeElement(vector        int arraySize = nums.size();        for (int i = 0; i             cout                 for (int j = i; j 

上一篇:服务器怎么清除病毒拦截?

下一篇:SpringBoot学习笔记(二)——SpringBoot测试JUnit5、 SpringBoot 配置、Spring IoC与自动装配