刷题笔记之数组

#第一次力扣之旅,只能说全都不会,慢慢学吧。现阶段计划为一周两篇,共十一篇,一个半月完成(感觉实际写完要两三个月了,后期也要至少保证一周一篇吧,给自己点压力)#

第一题:二分查找

二分查找建议分成三个区间,中间点以左,以右和中间点本身。判断时中间和目标的大小关系,中间点大则取左区间,小则取右区间,相等直接返回。

第二题:移除元素

暴力想法为依次遍历,找到相同的元素值时数组后的元素就都向前移动一位,然后从这一位接着往后找,这种方法需要注意循环结束条件。

或者使用双指针法,一个指针对应最后要得到的数组,一个指针对应当前数组,如果当前数组指针对应的元素不是要被删除的元素,那么就把他令到得到数组指针对应的值上,并且两个指针都向后移动一位,如果是要删除的元素,那就只将当前数组指针向后移动一位,其他全部不变。双指针法对于数组的更新是很有用的。

第三题:有序数组的平方

可以直接平方然后再排序,也可以使用双指针法。

双指针法的思路为从后和从前比较数的平方的大小,把大的数放在新数组的末尾,然后对应的指针向前或向后移动一位。这种方法需要新令一个数组并且从后向前给数组依次赋值

第四题:⻓度最⼩的⼦数组

这题可是吃了不少苦头,一直的想法都是如果还能往里加再加,实际上可以当他超出的时候在判断,属于是对题目描述的子数组理解不到位了。

一种思路为暴力循环两遍求解,即以数组的每一个节点为子数组的开始节点判断一次(这种思路在力扣上会超时,啧)

另一种思路为滑动窗口法,我愿称之为天才。依旧是定义两个指针,这两个指针分别作为滑窗的起始和结束。结束点先往后走,当滑窗框住的子区间满足题意时,记录其长度,并将开始点向后移动一位直到子区间不再满足题意(简直是天才)。这样由于子区间都是连续的,就可以获取满足题意的最小子区间了。

第五题:螺旋矩阵

没啥说的,依次转圈排就是了,注意每次要排多少个元素。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值