代码随想录day 01 二分法与快慢指针
二分法题目:
实现代码如下:
值得注意的是实现的方法是利用左闭右开区间还是左闭右闭区间
根据选择的不同,判断条件不同
将迭代的值带入到条件看符不符合区间要求就不会混淆二者
快慢指针题目:
本题实际上可以通过二重for循环暴力求解,复杂度是O(n^2)
但是测试过程中发现超时遂放弃
利用快慢指针在数组进行原地操作可以实现O(n)的时间复杂度
代码如下:
重点在于理解fast指向的是新数组所需的元素,slow指向的是新数组的下标
因而实际上fast只需要遍历一遍数组 然后slow在非目标值停顿一次
这样slow在遍历完成之后正好就是新数组的长度
实现过程漏掉了slow在fast赋值之后需要+1的操作 需要小心
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现