Re: [闲聊] 每日leetcode

楼主: JerryChungYC (JerryChung)   2024-09-14 09:34:23
https://leetcode.com/problems/longest-subarray-with-maximum-bitwise-and
2419. Longest Subarray With Maximum Bitwise AND
给一个 n 大小的整数数组 nums
考虑非空子数组 具有最大可能的字节合值 (bitwise AND)
回传最长子数组的长度
数组的字节合值是数组中所有数字的 bitwise AND
子数组是数组中连续的元素序列
Example 1:
Input: nums = [1,2,3,3,2,2]
Output: 2
Explanation: 最大的是 3 而为 3 的最长子数组是 [3,3] 长度为 2
Example 2:
Input: nums = [1,2,3,4]
Output: 1
Explanation: 最大的是 4 最常子数组是 [4] 回传 1
Constraints:
1 <= nums.length <= 10^5
1 <= nums[i] <= 10^6
思路:原本看不懂 问了一下 ChatGPT 看起来就是先找到最大值 再看有几个最大值
class ...
def ...
return nums.count(max(nums))
很明显的答错了
再确认一次题目 才知道要连续的才算
那么就跑一次 nums 找出哪个区段长度最长
Python Code:
class Solution:
def longestSubarray(self, nums: List[int]) -> int:
max_num = max(nums)
ans = temp = 0
for num in nums:
if num == max_num:
temp += 1
else:
ans = max(ans, temp)
temp = 0
return max(ans, temp)
非最大值就比较一次 ans 跟 temp 最后跑完再比较一次
有空再去想有没有更好的解法
作者: Firstshadow (IamCatづミ'_'ミづ)   2024-09-14 09:35:00
大师
作者: DJYOMIYAHINA (通通打死)   2024-09-14 10:36:00
早早早

Links booklink

Contact Us: admin [ a t ] ucptt.com