代码随想录第八天

题目一

. - 力扣(LeetCode)

看到题目的第一想法:

两个指针,左右互换,需要注意的细节应该是循环的条件.


看了代码随想录的想法:

 差不多,需要注意边界.

题目二

. - 力扣(LeetCode)

看到题目的第一想法:

想到一个比较复杂的快慢指针法,就是2k个元素是一个窗,在一个窗里fast走k步,slow在起始,如果属于前k,那么定义个指针i在fast和slow区间内做反转.

看了代码随想录的想法:

其实在遍历字符串的过程中,只要让 i += (2 * k),i 每次移动 2 * k 就可以了,然后判断是否需要有反转的.哈哈哈,果然是有优化空间.

题目三

54. 替换数字(第八期模拟笔试)

看到题目的第一想法:

 没什么想法,看起来好像很简单,但肯定有我不记得的细节

看了代码随想录的想法:

数组填充类的问题,其做法都是先预先给数组扩容带填充后的大小,然后在从后向前进行操作。

这么做有两个好处:

  1. 不用申请新数组。
  2. 从后向前填充元素,避免了从前向后填充元素时,每次添加元素都要将添加元素之后的所有元素向后移动的问题。

这里也给大家拓展一下字符串和数组有什么差别,

字符串是若干字符组成的有限序列,也可以理解为是一个字符数组,但是很多语言对字符串做了特殊的规定,接下来我来说一说C/C++中的字符串。

在C语言中,把一个字符串存入一个数组时,也把结束符 '\0'存入数组,并以此作为该字符串是否结束的标志。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值