题目核心
给定一个未排序的整数数组 nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。
要求:设计并实现时间复杂度为 O(n) 的解法。
例如:
nums = [100, 4, 200, 1, 3, 2]
答案:4(最长连续序列是 [1, 2, 3, 4])
nums = [0, 3, 7, 2, 5, 8, 4, 6, 0, 1]
答案:9(最长连续序列是 [0, 1, 2, 3, 4, 5, 6, 7, 8])
2026/8/12大约 7 分钟
给定一个未排序的整数数组 nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。
要求:设计并实现时间复杂度为 O(n) 的解法。
例如:
nums = [100, 4, 200, 1, 3, 2]
答案:4(最长连续序列是 [1, 2, 3, 4])
nums = [0, 3, 7, 2, 5, 8, 4, 6, 0, 1]
答案:9(最长连续序列是 [0, 1, 2, 3, 4, 5, 6, 7, 8])
请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。
实现 LRUCache 类:
LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存。int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1。void put(int key, int value) 如果关键字 key 已经存在,则变更其数据值 value;如果不存在,则向缓存中插入该组 key-value。如果插入操作导致关键字数量超过 capacity,则应该 逐出 最久未使用的关键字。给定一个大小为 n 的数组 nums,返回其中出现次数 超过一半 的元素。
多数元素是指数组中出现次数大于 n/2 的元素。题目保证数组中一定存在多数元素。
例如:
nums = [3, 2, 3]
答案:3