算法珠玑——双指针(3)
2021/12/3 22:08:01
本文主要是介绍算法珠玑——双指针(3),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
算法珠玑——双指针(3)
用例太少了!我觉得这个代码比官方快多了,但是估计也被运气影响了。
class Solution { public: string reverseWords(string s) { /* 基本情况:left(1) = 0; right(1) = k_1 - 1; 声明在外,提高性能 */ int right; int len = s.size()+1; /* 终止情况: k < s.size() 不成立 归纳步骤: 若 s[k] == ' ' || !s[k] left = k(n-1) + 1, right = k(n) - 1 然后使用这两个变量进行反转的第二个归纳应用 */ // 为了内存,left定义到这里了 for (int k = 0, left = 0; k < len; k++) { // 这是个短路判断,只有最后一个单词会进入!s[k]情况 if (s[k] == ' ' || !s[k]) { /* 基本情况: left = k(n-1) + 1, right = k(n)-1 终止情况: left < right 不成立 归纳步骤: 交换s[left] 和 s[right] */ for (right = k - 1; left < right; left++, right--) swap(s[left], s[right]); left = k + 1; } } return s; } };
这题在速度上可以将!s[k]部分单独提出来,不过这样的话内存就会加一点。
这篇关于算法珠玑——双指针(3)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-04TiDB 资源管控的对撞测试以及最佳实践架构
- 2024-07-03万字长文聊聊Web3的组成架构
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现