第 470 场周赛Q2——3702. 按位异或非零的最长子序列
2026/7/13 3:59:40 网站建设 项目流程

题目链接:3702. 按位异或非零的最长子序列(中等)

算法原理:

解法:枚举

2ms击败95.80%

时间复杂度O(N)

先把数组中所有数全部异或在一起,如果异或结果不为零,就直接返回数组长度,如果为零,根据“异或消消乐”的原理,一定出现两个相同的数,导致异或后结果为0,所以只要数组中有不为0的元素,那么去除这个元素后,剩下的元素异或和就不为0了,所以长度就是nums.length-1,如果都是0,那么自然就返回0即可

Java代码:

class Solution { public int longestSubsequence(int[] nums) { int tmp=0; for(int x:nums) tmp^=x; if(tmp!=0) return nums.length; //找到让异或为0的位置 for(int i=0;i<nums.length;i++) if(nums[i]!=0) return nums.length-1; return 0; } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询