
2026-06-01:按位与狂妄非零的最长飞腾子序列。用go话语,给定一个整数数组 nums。你需要在其中聘请一个子序列,使它的元素严格递加,况且把该子序列所有元素作念按位与运算(AND),终末得到的狂妄必须曲直零。要求该子序列的长度尽可能大,并复返这个最大长度;要是不存在空隙要求的子序列,就复返 0。子序列要求保抓原数组的相对轨则,2026最新赛程只可删除元素,不成改换轨则。
1
0
输入: nums = [5,4,7]。
输出: 2。
证实:
一个最长严格递加子序列是 [5, 7]。按位与的狂妄是 5 AND 7 = 5,狂妄为非零。
题目来独力扣3825。
大体身手如下:
Go完好代码如下:
package main
2026世界杯预选赛下单中国体彩官网import (
"fmt"
"sort"
)
func longestSubsequence(nums []int)int {
ans := 0
for bit := 0; bit
list := []int{}
for _, x := range nums {
if x&(1
// lower_bound 的等价达成
idx := sort.SearchInts(list, x)
if idx == len(list) {
list = append(list, x)
} else {
list[idx] = x
}
}
}
iflen(list) > ans {
ans = len(list)
}
}
return ans
}
func main {
nums := []int{5, 4, 7}
result := longestSubsequence(nums)
fmt.Println(result)
}

Python完好代码如下:
# -*-coding:utf-8-*-
from bisect import bisect_left
def longestSubsequence(nums):
ans = 0
for bit in range(32):
lst = []
for x in nums:
if x & (1
# lower_bound 的等价达成
idx = bisect_left(lst, x)
if idx == len(lst):
lst.append(x)
else:
lst[idx] = x
ans = max(ans, len(lst))
return ans
if __name__ == "__main__":
nums = [5, 4, 7]
result = longestSubsequence(nums)
print(result)

C++完好代码如下:
#include
#include
#include
using namespace std;
class Solution {
public:
int longestSubsequence(vector& nums) {
int ans = 0;
for (int bit = 0; bit
vector list;
for (int x : nums) {
if (x & (1
// lower_bound 的等价达成
auto idx = lower_bound(list.begin, list.end, x);
if (idx == list.end) {
list.push_back(x);
} else {
*idx = x;
}
}
}
if ((int)list.size > ans) {
ans = (int)list.size;
}
}
return ans;
}
};
int main {
Solution sol;
vector nums = {5, 4, 7};
int result = sol.longestSubsequence(nums);
cout
return0;
}

咱们坚信东谈主工智能为豪迈东谈主提供了一种“增强器具”,并死力于共享全标的的AI学问。在这里,您不错找到最新的AI科普著作、器具评测、普及成果的隐私以及行业洞悉。
接待关爱“福大大架构师逐日一题”,发音讯可赢得口试贵府2026FIFA世界杯中国比分网,让AI助力您的过去发展。