Brain Teasers¶
Table of Contents¶
- 2733. Neither Minimum nor Maximum (Easy)
- 1903. Largest Odd Number in String (Easy)
- 2549. Count Distinct Numbers on Board (Easy)
- 3432. Count Partitions with Even Sum Difference (Easy)
- 2396. Strictly Palindromic Number (Medium)
- 1689. Partitioning Into Minimum Number Of Deci-Binary Numbers (Medium)
- 598. Range Addition II (Easy)
- 521. Longest Uncommon Subsequence I (Easy)
- 3227. Vowels Game in a String (Medium)
- 2419. Longest Subarray With Maximum Bitwise AND (Medium)
- 3424. Minimum Cost to Make Arrays Identical (Medium)
- 1992. Find All Groups of Farmland (Medium)
- 1007. Minimum Domino Rotations For Equal Row (Medium)
- 2811. Check if it is Possible to Split Array (Medium)
- 2211. Count Collisions on a Road (Medium)
- 3207. Maximum Points After Enemy Battles (Medium)
- 2546. Apply Bitwise Operations to Make Strings Equal (Medium)
- 1503. Last Moment Before All Ants Fall Out of a Plank (Medium)
- 2860. Happy Students (Medium)
- 1332. Remove Palindromic Subsequences (Easy)
- 1975. Maximum Matrix Sum (Medium)
- 1145. Binary Tree Coloring Game (Medium)
- 1297. Maximum Number of Occurrences of a Substring (Medium)
- 3282. Reach End of Array With Max Score (Medium)
- 2332. The Latest Time to Catch a Bus (Medium)
- 2680. Maximum OR (Medium)
- 2731. Movement of Robots (Medium)
- 2556. Disconnect Path in a Binary Matrix by at Most One Flip (Medium)
- 3125. Maximum Number That Makes Result of Bitwise AND Zero (Medium) 👑
- 1794. Count Pairs of Equal Substrings With Minimum Difference (Medium) 👑
2733. Neither Minimum nor Maximum¶
1903. Largest Odd Number in String¶
2549. Count Distinct Numbers on Board¶
3432. Count Partitions with Even Sum Difference¶
2396. Strictly Palindromic Number¶
1689. Partitioning Into Minimum Number Of Deci-Binary Numbers¶
598. Range Addition II¶
521. Longest Uncommon Subsequence I¶
3227. Vowels Game in a String¶
2419. Longest Subarray With Maximum Bitwise AND¶
3424. Minimum Cost to Make Arrays Identical¶
1992. Find All Groups of Farmland¶
1007. Minimum Domino Rotations For Equal Row¶
2811. Check if it is Possible to Split Array¶
2211. Count Collisions on a Road¶
3207. Maximum Points After Enemy Battles¶
2546. Apply Bitwise Operations to Make Strings Equal¶
1503. Last Moment Before All Ants Fall Out of a Plank¶
2860. Happy Students¶
1332. Remove Palindromic Subsequences¶
1975. Maximum Matrix Sum¶
1145. Binary Tree Coloring Game¶
1297. Maximum Number of Occurrences of a Substring¶
3282. Reach End of Array With Max Score¶
2332. The Latest Time to Catch a Bus¶
2680. Maximum OR¶
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