20250523 finished.

This commit is contained in:
jackfiled 2025-05-23 12:17:22 +08:00
parent 9f65089c2d
commit 11ef8edf9d
2 changed files with 55 additions and 0 deletions

View File

@ -670,3 +670,5 @@ mod p3355_zero_array_transformation_i;
mod p3356_zero_array_transformation_ii;
mod p3362_zero_array_transformation_iii;
mod p3068_find_the_maximum_sum_of_node_values;

View File

@ -0,0 +1,53 @@
/**
* [3068] Find the Maximum Sum of Node Values
*/
pub struct Solution {}
// submission codes start here
impl Solution {
pub fn maximum_value_sum(nums: Vec<i32>, k: i32, _: Vec<Vec<i32>>) -> i64 {
let mut result: i64 = nums.iter().map(|x| *x as i64).sum();
let mut difference: Vec<i64> = nums.iter().map(|&x| ((x ^ k) - x) as i64).collect();
difference.sort_unstable_by(|a, b| b.cmp(a));
for pair in difference.chunks(2) {
let sum: i64 = pair.iter().sum();
if pair.len() != 2 || sum < 0 {
break;
}
result += sum;
}
result
}
}
// submission codes end
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_3068() {
assert_eq!(
6,
Solution::maximum_value_sum(vec![1, 2, 1], 3, vec![vec![0, 1], vec![0, 2]])
);
assert_eq!(
9,
Solution::maximum_value_sum(vec![2, 3], 7, vec![vec![0, 1]])
);
assert_eq!(
42,
Solution::maximum_value_sum(
vec![7; 6],
3,
vec![vec![0, 1], vec![0, 2], vec![0, 3], vec![0, 4], vec![0, 5]]
)
);
}
}