代码随想录学习笔记
文章平均质量分 53
个人算法学习记录
好困啊好困zzz
底层码农缓慢学习
展开
-
数组中的双指针法(C语言实现)
2.双指针法:我们发现,经过平方处理后的数组中,最大值一定出现在数组的最左端或者最右端,因此我们新建一个长度与原数组相同的空数组,设置两个指针分别指向数组左右两端,比较两端大小,将数值更大的一端的元素放入空数组的末端,从后往前填充空数组,再将左指针或右指针向内移动,直到左指针在右指针右边或二者相等,终止循环,返回排序后的数组。移除所有数值等于val的元素,也就是说我们不能使用额外的数组来存储数据,应在原数组中进行改变元素。数组的元素在内存地址中是连续的,因此我们不能直接删除某个元素,只能进行覆盖。原创 2024-07-11 16:00:49 · 328 阅读 · 0 评论 -
初学二分查找
为了解决这个问题,在边界查找函数中引入变量flag,记录二分查找过程中数组是否存在该目标值,将flag初始化为0,查找过程中若找到了目标值,则将flag赋值为1。首先写一个基本的二分查找,若未寻找到给定目标值,跳出循环体,如果此时下标为mid的数小于给定目标值,则返回mid+1,反之直接返回mid。发现题目依旧为写一个基本的二分查找,但输出多了一个条件,即若给定目标值不存在于数组中,返回它将会被按顺序插入的位置。在听了代码随想录卡尔老师的讲解后自行写出如下代码,其中边界条件的设置为左闭右开。原创 2024-07-10 17:00:55 · 224 阅读 · 0 评论