精華區beta Marginalman 關於我們 聯絡資訊
https://leetcode.com/problems/longest-nice-subarray 2401. Longest Nice Subarray 給你一個陣列nums,如果他的子陣列的任意兩個元素and後為0則他是一個nice陣列,求出 最長的nice陣列有多長(長度為1的陣列總是nice)。 思路: 雙指針,如果當前加入的元素跟之前加入的bit位置都沒重複就可以加入長度加一,否則 一直pop前面的數字(用xor刪掉前面加過的元素),返回最長長度即可。 Java Code: -------------------------------------------------------- class Solution { public int longestNiceSubarray(int[] nums) { int res = 1; int curr = 0; int l = 0; int r = 0; while (r < nums.length) { while ((curr & nums[r]) > 0) { curr ^= nums[l++]; } curr |= nums[r]; res = Math.max(res, r - l + 1); r++; } return res; } } -------------------------------------------------------- -- https://i.imgur.com/9FXhO25.jpeg -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.158.101.161 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1742312683.A.850.html