自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 滑动窗口与双指针法

top指针与low指针都初始化指向数组首位,top为子数组右边界,low为子数组左边界,右边界向右扩张,当子数组数值之和(sum)大于等于给定的target值时,记录当前子数组长度,向右收缩左边界(数组数值之和减去low指针所指数,low指针向右移动)直到sum小于targat时继续扩张右边界直到完成遍历整个数组。在该题中需要我们找出满足条件的子数组,可以用暴力解法双层循环遍历数组求得数组的所有子数组并获得长度最小符合条件的子数组,其时间复杂度为O(n^2)。滑动窗口也能理解为一种双指针法。

2024-07-25 21:19:27 122

原创 数组中的双指针法(C语言实现)

2.双指针法:我们发现,经过平方处理后的数组中,最大值一定出现在数组的最左端或者最右端,因此我们新建一个长度与原数组相同的空数组,设置两个指针分别指向数组左右两端,比较两端大小,将数值更大的一端的元素放入空数组的末端,从后往前填充空数组,再将左指针或右指针向内移动,直到左指针在右指针右边或二者相等,终止循环,返回排序后的数组。移除所有数值等于val的元素,也就是说我们不能使用额外的数组来存储数据,应在原数组中进行改变元素。数组的元素在内存地址中是连续的,因此我们不能直接删除某个元素,只能进行覆盖。

2024-07-11 16:00:49 282

原创 初学二分查找

为了解决这个问题,在边界查找函数中引入变量flag,记录二分查找过程中数组是否存在该目标值,将flag初始化为0,查找过程中若找到了目标值,则将flag赋值为1。首先写一个基本的二分查找,若未寻找到给定目标值,跳出循环体,如果此时下标为mid的数小于给定目标值,则返回mid+1,反之直接返回mid。发现题目依旧为写一个基本的二分查找,但输出多了一个条件,即若给定目标值不存在于数组中,返回它将会被按顺序插入的位置。在听了代码随想录卡尔老师的讲解后自行写出如下代码,其中边界条件的设置为左闭右开。

2024-07-10 17:00:55 211

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除