2025-11-23 学习日记

发布于 2025-11-23 12:00 368 字 2 min read 手写 每个字都是我自己敲的。

2025-12-24 学习日记2025-12-17 学习日记2025-12-14 学习日记2025-12-09 学习日记2025-12-08 学习日记2025-12-07 学习日记2025-12-06 学习日记2025-12-05 学习日记2025-12-04 学习日记2025-12-03 学习日记2025-12-02 学习日记2025-12-01 学习日记2025-11-30 学习日记2025-11-29 学习日记2025-11-28 学习日记2025-11-27 学习日记2025-11-26 学习日记2025-11-25 学习日记2025-11-24 学习日记2025-11-23 学习日记2025-11-22 学习日记2025-11-21 学习日记2025-11-20 学习日记2025-11-19 学习日记2025-11-18 学习日记2025-11-17 学习日记2025-11-16 学习日记2025-11-15 学习日记2025-11-14 学习日记2025-11-13 学习日记2025-11-12 学习日记2025-11-11 学习日记2025-11-10 学习日记2025-11-09 学习日记2025-11-08 学习日记2025-11-07 学习日记2025-11-06 学习日记2025-11-05 学习日记2025-11-04 学习日记2025-11-03 学习日记2025-11-02 学习日记2025-11-01 学习日记2025-10-31 学习日记2025-10-30 学习日记2025-10-29 学习日记2025-10-28 学习日记2025-10-27 学习日记2025-10-26 学习日记2025-10-25 学习日记2025-10-24 学习日记2025-10-23 学习日记2025-10-22 学习日记2025-10-21 学习日记2025-10-20 学习日记2025-10-19 学习日记2025-10-18 学习日记2025-10-17 学习日记2025-10-16 学习日记2025-10-15 学习日记2025-10-14 学习日记2025-10-13 学习日记2025-10-11 学习日记2025-10-10 学习日记2025-10-09 学习日记2025-10-03 学习日记2025-10-02 学习日记2025-10-01 学习日记2025-09-30 学习日记2025-09-29 学习日记2025-09-28 学习日记2025-09-27 学习日记2025-09-26 学习日记2025-09-25 学习日记2025-09-24 学习日记2025-09-23 学习日记2025-09-22 学习日记2025-09-21 学习日记2025-09-20 学习日记2025-09-18 学习日记2025-09-17 学习日记2025-09-16 学习日记2025-09-15 学习日记2025-09-14 学习日记2025-09-13 学习日记2025-09-12 学习日记2025-09-11 学习日记2025-09-10 学习日记2025-09-09 学习日记2025-09-08 学习日记2025-09-04 学习日记2025-09-03 学习日记2025-09-02 学习日记2025-09-01 学习日记2025-08-31 学习日记2025-08-29 学习日记2025-08-28 学习日记2025-08-27 学习日记2025-08-26 学习日记2025-08-25 学习日记2025-08-24 周记2025-08-23 学习日记2025-08-22 学习日记2025-08-21 学习日记2025-08-20 学习日记2025-08-19 学习日记2025-08-18 学习日记2025-08-17 周记2025-08-16 学习日记2025-08-15 学习日记2025-08-14 学习日记2025-08-13 学习日记2025-08-12 学习日记2025-08-11 学习日记
今日学习记录 1. 3755. 最大平衡异或子数组的长度 关键词: 问题分析: 给出一个数组,找到这个数组中满足条件的最长连续子数组,要求子数组中的奇偶数相同,且子数组中元素按位异或为 0 核心思路: 对于奇偶数相同,当遇到奇数时加一,偶数时减一,找到最长的相同前缀值 子数组中的所有元素异或和为 0,则=就代表从 l 到 r 中间按位异或为 0 实现细节...

今日学习记录

1. 3755. 最大平衡异或子数组的长度

关键词:前缀和 位运算 问题分析: 给出一个数组,找到这个数组中满足条件的最长连续子数组,要求子数组中的奇偶数相同,且子数组中元素按位异或为 0

核心思路: 对于奇偶数相同,当遇到奇数时加一,偶数时减一,找到最长的相同前缀值 子数组中的所有元素异或和为 0,则s[l]=s[r]就代表从 l 到 r 中间按位异或为 0

实现细节

我们看来要捆绑两个信息,奇偶数和目前的元素按位异或值 我们可以使用 pair 来存储,但是要使用 map 我们可以使用位运算技巧用 long long 存储两个信息,前 int 存 cnt,后 int 存 sum,可以使用 unordered_map 进行存储,速度更快

**最终代码:

int maxBalancedSubarray(vector<int>& nums) {

        unordered_map<long long,int> mp;

        mp[0] = 0;

        int ans = 0;

        long long sum = 0;

        long long cnt = 0;

        for(int i = 0;i<nums.size();i++){

            sum ^= nums[i];

            cnt += (nums[i]&1?1:-1);

            long long key = 1LL*cnt<<32|sum;

            if(mp.count(key)) ans = max(ans,i-mp[key]+1);

            else mp[key] = i+1;

        }

        return ans;

    }

学到的点:

  1. 无谋

执笔 手写

随机文章

加载中...