yzb北

单调栈详解:从入门到实践

背景介绍 在计算机科学中,我们经常需要解决”找到数组中下一个更大/更小元素”、”寻找数组中的模式”等问题。传统的方法可能需要嵌套循环,时间复杂度达到O(n²)。单调栈的出现为这类问题提供了一个优雅且高效的解决方案。 基本概念 什么是单调栈? 单调栈是一种特殊的栈结构,其中的元素保持单调递增或单调递减的顺序。与普通栈相比,单调栈在插入新元素时会维护这种单调性,必要时会弹出栈顶元素。 ...

14.最长公共前缀

在这篇文章中,我们将探讨如何使用 Swift 解决 LeetCode 上的经典问题——最长公共前缀。这个问题要求我们找出一个字符串数组中所有字符串共有的最长前缀。如果不存在公共前缀,则返回空字符串。这个问题在实际开发中非常常见,尤其是在处理字符串比较和文本处理时。 题目描述 给定一个字符串数组 strs,找出所有字符串中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例...

141.环形链表

题目说明 难度简单 给定一个链表,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。 如果链表中存在环,则返回 true 。 否...