2683. 相邻值的按位异或

This commit is contained in:
li-chx 2025-07-31 11:47:40 +08:00
parent 78f001bc32
commit fb53c164a8
1 changed files with 8 additions and 25 deletions

View File

@ -2,35 +2,18 @@ use std::cmp::max;
struct Solution;
impl Solution {
pub fn longest_subarray(nums: Vec<i32>) -> i32 {
let mut ans = 0;
let mut ans_val = 0;
let mut last = 0;
let mut count = 0;
for i in 0..nums.len() {
if nums[i] != last {
if ans_val < last {
ans_val = last;
ans = count;
}else if ans_val == last {
ans = max(count,ans);
}
last = nums[i];
count = 1;
} else {
count += 1;
}
pub fn does_valid_array_exist(derived: Vec<i32>) -> bool {
let mut a = 0;
let mut b = 1;
for i in derived.iter() {
a ^= i;
b ^= i;
}
if ans_val < last {
ans = count;
}else if ans_val == last {
ans = max(count,ans);
}
ans
a == 0 || b == 1
}
}
fn main() {
let sl = Solution::longest_subarray(vec![96317,96317,96317,96317,96317,96317,96317,96317,96317,279979]);
let sl = Solution::does_valid_array_exist(vec![1,1,0]);
println!("{:?}", sl);
}