![](https://img-blog.csdnimg.cn/5e0ffcb4836a4e06966712f3efa1d8b2.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法(C++)
文章平均质量分 55
自学用
skyfly丶
汽车攻城狮
展开
-
002移除元素
给你一个nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。要知道数组的元素在内存地址中是连续的,不能单独删除数组中的某个元素,只能覆盖。重点思想就是数组的元素是连续的,所谓删除也不是真正意义上的删除,而是快指针在寻找新数组中的元素并赋值给nmus[slowindex]😄。原创 2024-03-08 18:58:00 · 330 阅读 · 0 评论 -
001二分法
二分查找也属于顺序表查找范围,二分查找也称为折半查找。二分查找(有序)的时间复杂度为O(LogN)。那么什么是二分查找呢?二分查找的基本思想是, 在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功;若给定值小于中间记录的关键字,则在中间记录的左半区继续查找;若给定值大于中间记录的关键字,则在中间记录的右半区继续查找。不断重复上述过程,直到找到为止。从二分查找的定义我们可以看出,使用二分查找有两个前提条件:1,待查找的列表必须有序,这里使用递归快排来使产生的随机无序数组有序。原创 2023-10-26 10:46:12 · 88 阅读 · 0 评论