background picture of the home page

Java炒饭

力扣P32

本文讨论力扣第32题“最长有效括号”,要求找出给定括号字符串中最长有效括号子串的长度。作者首先尝试使用动态规划(DP)方法,定义 `dp[i]` 表示以第 `i` 个字符结尾的最长有效括号长度。状态转移分两种情况:当 `s[i] == ')'` 时,若前一字符为 `'('`,则形成 `"()"` 结构;否则检查是否能与更左侧的 `'('` 匹配,并结合已有的有效长度进行更新。优化后的 DP 解法时间复杂度为 O(n),空间复杂度为 O(n)。此外,作者指出该题也可用栈来解决,遍历字符串时利用栈存储下标,通过匹配括号更新最大长度,同样可达到 O(n) 时间效率。整体核心在于合理设计状态转移或利用栈维护未匹配位置。

thumbnail of the cover of the post

Docker

本文详细介绍了在CentOS 7虚拟机上安装和配置Docker的过程,包括卸载旧版本、配置yum源(使用阿里云镜像)、安装Docker及设置开机自启等步骤。接着,文章通过部署MySQL示例展示了如何使用Docker运行容器,并介绍了Docker的基本概念如镜像、容器以及常用命令。此外,还讲解了数据卷的使用方法及其相关命令,用于实现宿主机与容器之间的文件共享。最后,简要提到了自定义镜像的方法(通过Dockerfile)以及Docker Compose的用途,后者可以通过`.yml`文件快速部署多个关联的服务容器。

thumbnail of the cover of the post

redis

Redis是一个开源的、基于键值对存储的高性能内存数据库,同时也被用作缓存、消息代理和数据结构服务器。它支持多种数据结构如字符串、哈斯表、列表、集合等,并提供了丰富的操作这些数据结构的命令。Redis通过将数据存储在内存中来实现高速读写访问,同时支持持久化到磁盘以防止数据丢失。此外,Redis还具有发布/订阅功能以及Lua脚本执行能力,使得其在实际应用中非常灵活。Redis通常用于需要快速响应时间的应用场景,例如实时分析、计数器、排行榜等。它的集群模式能够提供高可用性和自动分区,适合大规模分布式系统使用。

thumbnail of the cover of the post