💡
原文英文,约800词,阅读约需3分钟。
📝
内容提要
给定一个非负整数数组和一个整数k,要求找到最短的特殊子数组,使其元素的按位或值至少为k。如果不存在这样的子数组,则返回-1。可以通过滑动窗口和位操作的方法来解决此问题。
🎯
关键要点
- 给定一个非负整数数组和一个整数k,要求找到最短的特殊子数组。
- 特殊子数组的元素按位或值至少为k。
- 如果不存在这样的子数组,则返回-1。
- 可以通过滑动窗口和位操作的方法来解决此问题。
- 滑动窗口方法使用两个指针来扩展和收缩窗口。
- 按位或操作累积值,扩展窗口时只会增加或保持不变。
- 使用双端队列(deque)来高效维护子数组的索引。
- orNum方法用于更新累计的OR值,undoOrNum方法用于在收缩窗口时移除OR值。
- 时间复杂度为O(n),空间复杂度为O(n)。
➡️