【算法】代码随想录之数组(更新中)

文章目录

前言

一、二分查找法(LeetCode--704)

二、移除元素(LeetCode--27)


前言

跟随代码随想录,学习数组相关的算法题目,记录学习过程中的tips。


一、二分查找法(LeetCode--704)

【1】算法功能:在有序数组中,查找指定元素,时间复杂度为O(log N)。

【2】算法思想:定义首尾指针分别指向数组的首尾元素,若中间元素的值小于目标值则将首指针移动至中间元素右侧,若中间元素的值大于目标值则将尾指针移动至中间元素的左侧,若相等则返回下标。

【3】代码实现:在左闭右闭的区间内查找。

class Solution {
public:
    int search(vector<int>& nums, int target) {
        int low = 0, high = nums.size() - 1;
        while (low <= high) {
            int mid = (low + high) / 2;
            if (nums[mid] == target) {
                return mid;
            } else if (nums[mid] < target) {
                low = mid + 1;
            } else {
                high = mid - 1;
            }
        }
        return -1;
    }
};

【4】易错点:①注意while循环的判定条件;②注意high的更新条件。


二、移除元素(LeetCode--27)

在之前的刷题中已经遇到过,且代码随想录的解法与当时我的初次解法相同,见【LeetCode算法】第27题:移除元素-CSDN博客


相关推荐

  1. 代码随想算法——数组

    2024-07-10 09:46:07       32 阅读
  2. 代码随想 -- 数组

    2024-07-10 09:46:07       36 阅读
  3. 代码随想——数组

    2024-07-10 09:46:07       15 阅读
  4. 代码随想leetcode200题动态规划算法

    2024-07-10 09:46:07       12 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 09:46:07       4 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 09:46:07       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 09:46:07       4 阅读
  4. Python语言-面向对象

    2024-07-10 09:46:07       4 阅读

热门阅读

  1. 在Spring Boot中实现RESTful API设计

    2024-07-10 09:46:07       8 阅读
  2. XML的两种常用的模式定义方式

    2024-07-10 09:46:07       7 阅读
  3. Linux系统管理面试题

    2024-07-10 09:46:07       9 阅读
  4. IO练习网络爬虫获取

    2024-07-10 09:46:07       11 阅读
  5. C++设计模式---备忘录模式

    2024-07-10 09:46:07       6 阅读
  6. WHAT - React useEffect 依赖的 Object.is

    2024-07-10 09:46:07       8 阅读
  7. 探索 Neo4j:图数据库的强大应用

    2024-07-10 09:46:07       10 阅读