代码随想录算法训练营第九天| 字符串和双指针法总结

1. 字符串总结

1.1 双指针法

  • 反转字符串
  • 替换空格,通过判断空格数量,进而增加原数组长度,设置一前一后双指针替换
  • 反转字符串里面的单词 —> 删除冗余空格

1.2反转系列

  • 反转字符串II: 只需要用start和end变量,确定好要反转的区间,然后用一个for循环控制每次遍历区间,依次反转即可

  • 反转单词:①先去多余空格②整体反转==(保证单词位置进行了反转)==③每个单词局部反转,做到了单词的反转

  • 左旋字符串:局部反转 + 局部反转 + 整体反转

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jAVBFj0N-1679577704536)(字符串和双指针法总结.assets/image-20230323205812591.png)]

2. 双指针总结

2.1 数组

  • 移除元素—两个指针(快慢指针)在一次遍历下完成任务,其实降低时间复杂度的因素是避免了两个for循环中很多无用的操作

2.2 字符串

  • 反转字符串
  • 替换空格,通过判断空格数量,进而增加原数组长度,设置一前一后双指针替换
  • 反转字符串里面的单词 —> 删除冗余空格

2.3 链表

  • 反转链表

  • 环形链表

    使用快慢指针(双指针法),分别定义 fast 和 slow指针,从头结点出发,fast指针每次移动两个节点,slow指针每次移动一个节点,如果 fast 和 slow指针在途中相遇 ,说明这个链表有环。

2.4 N数之和

  • 通过前后两个指针不算向中间逼近,在一个for循环下完成两个for循环的工作。

  • 四数之和,其实思路是一样的,在三数之和的基础上再套一层for循环,依然是使用双指针法。

  • 因此,用双指针法可以将N数之和的时间复杂度降低到O(NN-1)

2.5 总结

双指针法可以将N数之和的时间复杂度降低到O(NN-1)

2.5 总结

双指针说白了还是对数据相对位置的把控,同时对数据进行操作,节省了时间

代码随想录算法训练营是一个优质的学习和讨论平台,提供了丰富的算法训练内容和讨论交流机会。在训练营中,学员们可以通过观看视频讲解来学习算法知识,并根据讲解内容进行刷题练习。此外,训练营还提供了刷题建议,例如先看视频、了解自己所使用的编程语言、使用日志等方来提高刷题效果和语言掌握程度。 训练营中的讨论内容非常丰富,涵盖了各种算法知识点和解题方。例如,在第14天的训练营中,讲解了二叉树的理论基础、递归遍历、迭代遍历和统一遍历的内容。此外,在讨论中还分享了相关的博客文章和配图,帮助学员更好地理解和掌握二叉树的遍历方训练营还提供了每日的讨论知识点,例如在第15天的讨论中,介绍了层序遍历的方和使用队列来模拟一层一层遍历的效果。在第16天的讨论中,重点讨论了如何进行调试(debug)的方,认为掌握调试技巧可以帮助学员更好地解决问题和写出正确的算法代码。 总之,代码随想录算法训练营是一个提供优质学习和讨论环境的平台,可以帮助学员系统地学习算法知识,并提供了丰富的讨论内容和刷题建议来提高算法编程能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [代码随想录算法训练营每日精华](https://blog.csdn.net/weixin_38556197/article/details/128462133)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值