代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素

LeetCode 704 二分查找

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

前提条件:

  1. 有序数组;2.数组中无重复元素;

左闭右闭写法:

代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素_第1张图片

左比右开写法:

 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素_第2张图片

LeetCode  27 移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

方法一:双指针

思路:

  题目要求删除等于val的数组元素,所以输出的数组长度必然小于原数组长度,在原数组的基础上输出删除val后的新数组。

双指针,即分为左右两个指针,右指针 right 指向当前将要处理的元素,左指针 left指向下一个将要赋值的位置。

right指针指向的元素,有两种情况:当指向的元素等于val时,right指针继续向右移动,此left指针不变;当指向的元素不等于val时,left指针后随右指针继续指向下一个右指针指向的元素

代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素_第3张图片

代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素_第4张图片

方法二:暴力解法

两层for循环:第一层,循环遍历数组元素;第二次,循环更新数组

代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素_第5张图片

参考代码随想录

二分查找:

https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html

移除元素:

https://programmercarl.com/0027.%E7%A7%BB%E9%99%A4%E5%85%83%E7%B4%A0.html

你可能感兴趣的:(算法)