一些有意思的算法代码
这篇讲的是作者在解决最长连续范围问题时的一套精巧算法实现。问题本身并不复杂:给定一个未排序的整数数组,找出其中最长的、由连续整数构成的序列的长度。但文章的价值在于,它没有满足于常规的排序后遍历解法,而是深入探讨了如何利用哈希集合将时间复杂度优化到线性级别。 作者的思路核心在于,将数组元素全部存入一个集合中。然后,遍历时只从序列的“起点”开始扩展——判断依据是集合中不存在当前数减一的那个值。一旦确认起点,便持续检查起点后续的连续整数是否都在集合内,从而高效计算出以此起点开始的序列长度。这个过程避免了重复计算,且每个元素最多被访问两次。 巧妙之处体现在对“起点”定义的精准把握上,这彻底剔除了无效的内层循环。代码实现简洁,依赖哈希表的常数级查询特性,最终在时间和空间复杂度上取得了理想的平衡,是算法思维优化解题的典型案例。