Skip to content

Bit AND OR

Table of Contents

2980. Check if Bitwise OR Has Trailing Zeros

1318. Minimum Flips to Make a OR b Equal to c

2419. Longest Subarray With Maximum Bitwise AND

2871. Split Array Into Maximum Number of Subarrays

2401. Longest Nice Subarray

2680. Maximum OR

2680. Maximum OR - Python Solution
from typing import List


# Greedy
def maximumOr(nums: List[int], k: int) -> int:
    """Maximum OR of Array After k Operations

    Args:
        nums (List[int]): provided list of integers
        k (int): number of operations

    Returns:
        int: maximum OR of array after k operations
    """
    n = len(nums)
    suffix = [0 for _ in range(n)]

    for i in range(n - 2, -1, -1):
        suffix[i] = suffix[i + 1] | nums[i + 1]

    res, pre = 0, 0
    for num, suf in zip(nums, suffix):
        res = max(res, pre | (num << k) | suf)
        pre |= num

    return res


if __name__ == "__main__":
    print(maximumOr(nums=[8, 1, 2], k=2))  # 35

3133. Minimum Array End

3108. Minimum Cost Walk in Weighted Graph

3117. Minimum Sum of Values by Dividing Array

  • LeetCode | LeetCode CH (Hard)

  • Tags: array, binary search, dynamic programming, bit manipulation, segment tree, queue

3125. Maximum Number That Makes Result of Bitwise AND Zero

Comments