力扣P42 接雨水
本文介绍力扣经典题目“接雨水”的解法。通过双指针技巧,从数组两端向中间遍历,维护左右两侧的最大高度(lmax 和 rmax)。每次移动较小一侧的指针,该位置能接的雨水量为当前侧最大值减去其高度,并累加结果。核心思想是:每个位置能接的雨水由左右两边最大高度中的较小者决定。算法时间复杂度为 O(n),空间复杂度为 O(1),高效且易于实现。
本文介绍力扣经典题目“接雨水”的解法。通过双指针技巧,从数组两端向中间遍历,维护左右两侧的最大高度(lmax 和 rmax)。每次移动较小一侧的指针,该位置能接的雨水量为当前侧最大值减去其高度,并累加结果。核心思想是:每个位置能接的雨水由左右两边最大高度中的较小者决定。算法时间复杂度为 O(n),空间复杂度为 O(1),高效且易于实现。
本文讨论力扣第32题“最长有效括号”,要求找出给定括号字符串中最长有效括号子串的长度。作者首先尝试使用动态规划(DP)方法,定义 `dp[i]` 表示以第 `i` 个字符结尾的最长有效括号长度。状态转移分两种情况:当 `s[i] == ')'` 时,若前一字符为 `'('`,则形成 `"()"` 结构;否则检查是否能与更左侧的 `'('` 匹配,并结合已有的有效长度进行更新。优化后的 DP 解法时间复杂度为 O(n),空间复杂度为 O(n)。此外,作者指出该题也可用栈来解决,遍历字符串时利用栈存储下标,通过匹配括号更新最大长度,同样可达到 O(n) 时间效率。整体核心在于合理设计状态转移或利用栈维护未匹配位置。
本文详细介绍了在CentOS 7虚拟机上安装和配置Docker的过程,包括卸载旧版本、配置yum源(使用阿里云镜像)、安装Docker及设置开机自启等步骤。接着,文章通过部署MySQL示例展示了如何使用Docker运行容器,并介绍了Docker的基本概念如镜像、容器以及常用命令。此外,还讲解了数据卷的使用方法及其相关命令,用于实现宿主机与容器之间的文件共享。最后,简要提到了自定义镜像的方法(通过Dockerfile)以及Docker Compose的用途,后者可以通过`.yml`文件快速部署多个关联的服务容器。