Leetcode 3702. Longest Subsequence With Non-Zero Bitwise XOR

  • [Leetcode 3702. Longest Subsequence With Non-Zero Bitwise XOR](#Leetcode 3702. Longest Subsequence With Non-Zero Bitwise XOR)
    • [1. 解题思路](#1. 解题思路)
    • [2. 代码实现](#2. 代码实现)

1. 解题思路

这一题我们只需要从左往右依次计算每一个位置上的累积异或值即可。

其结果只有两种情况:

  • 如果其本身非零,那么其可以达到的最大长度就是其当前位置的坐标;
  • 如果其值为0,那么其可以找到的最大长度就是从第一个非零的坐标到当前位置的子串长度。

2. 代码实现

给出python代码实现如下:

python 复制代码
class Solution:
    def longestSubsequence(self, nums: List[int]) -> int:
        xor = 0
        ans = 0
        st = -1
        for i, num in enumerate(nums):
            xor = xor ^ num
            if xor != 0:
                if st == -1:
                    st = i
                ans = max(ans, i+1)
            elif st != -1:
                ans = max(ans, i-st)
        return ans

提交代码评测得到:耗时157ms,占用内存33.33MB。

相关推荐
Espresso Macchiato1 天前
Leetcode 3694. Distinct Points Reachable After Substring Removal
滑动窗口·leetcode medium·leetcode双周赛166·leetcode 3694
Espresso Macchiato1 天前
Leetcode 3698. Split Array With Minimum Difference
leetcode medium·分类讨论·leetcode周赛469·leetcode 3698
Espresso Macchiato1 个月前
Leetcode 3665. Twisted Mirror Path Count
动态规划·leetcode medium·leetcode 3665·leetcode双周赛164
Espresso Macchiato1 个月前
Leetcode 3669. Balanced K-Factor Decomposition
动态规划·质因数分解·leetcode medium·leetcode 3669·leetcode周赛465
Espresso Macchiato2 个月前
Leetcode 3644. Maximum K to Sort a Permutation
leetcode medium·位操作·数组排序·leetcode 3644·leetcode周赛462
Espresso Macchiato2 个月前
Leetcode 3629. Minimum Jumps to Reach End via Prime Teleportation
bfs·广度优先遍历·leetcode medium·leetcode 3629·leetcode周赛460·质数求解·质因素分解
Espresso Macchiato4 个月前
Leetcode 3572. Maximize Y‑Sum by Picking a Triplet of Distinct X‑Values
leetcode medium·leetcode 3572
Espresso Macchiato4 个月前
Leetcode 3568. Minimum Moves to Clean the Classroom
剪枝·广度优先遍历·leetcode medium·堆排·leetcode周赛452·leetcode 3568
Espresso Macchiato4 个月前
Leetcode 3567. Minimum Absolute Difference in Sliding Submatrix
leetcode·leetcode medium·leetcode周赛452·leetcode 3567