WWW.YOUINFO.SITE
标签聚合 互补

/tag/互补

LinuxDo 最新话题 · 2026-05-13 12:15:33+08:00 · tech

力扣 LeetCode 1674. 使数组互补的最少操作次数 - 力扣(LeetCode) 1674. 使数组互补的最少操作次数 - 给你一个长度为 偶数 n 的整数数组 nums 和一个整数 limit 。每一次操作,你可以将 nums 中的任何整数替换为 1 到 limit 之间的另一个整数。 如果对于所有下标 i(下标从 0 开始),nums[i] + nums[n - 1 - i] 都等于同一个数,则数组 nums 是 互补的 。例如,数组 [1,2,3,4] 是互补的,因为对于所有下标 i ,nums[i] + nums[n - 1 - i] = 5 。 返回使数组 互补... 本质困难题,这题看了题解才知道能这样用差分数组… 思路 因为 1 <= nums[i] <= limit ,最终必然可以凑成互补数组,且一对数的和的范围为 2 <= nums[i] + nums[n-i-1] <= limit*2 。 设有一对数 <nums[i], nums[n-i-1]> , 且 a 是其中较小的一个, b 是其中较大的一个,要凑成一个和 F ( 2 <= F <= limit*2 )。 分五个情况: 2 <= F < a+1 (操作 2 次) (此时 b 变换为最小值 1,但 a+1 仍然 > F,还要替换 a;注意这种情况不会有 b=1,因为 b=1 就有 a=1, 必然 = F) a+1 <= F < a+b (操作 1 次) (因为 F < a+b, 只需要减小 b 即可) a+b = F (不需要操作) b+a < F <= b+limit (操作 1 次) (类比 case 2,增大 a 即可) b+a < b+limit < F <= limit+limit (操作 2 次) (类比 case 1, 这种情况不会有 a=limit,因为 a=limit 就有 b=limit,必然 = F) 每一对数下五种情况正好是彼此相邻的区间,把数字和转换到不同区间需要不同操作数。 不同数对的这些区间会 互相交叠 ,为了加速统计 nums 中所有数字对的和转换为不同 F 的操作数,就可以用 差分数组 来实现。 五种情况正好对应差分数组中五个操作数突变点,对每对数字的情况都更新一下差分数组,最终计算差分数组前缀和就能知道让互补和 F 取哪个数对应的操作数最少了。 代码 class Solution { public: int minMoves(vector<int>& nums, int limit) { // 因为 1 <= nums[i] <= limit,必然是可以凑成的 // 两个数的和的范围 2 <= nums[i] + nums[n-i-1] <= limit*2 // 设有一对数 (nums[i], nums[n-i-1]), a 是较小的一个,b 是较大的一个,要凑成 F,有 2 <= F <= limit*2 // // case 1: 2 <= F < a+1 (操作 2 次) // (此时 b 变换为最小值 1,但 a+1 仍然 > F,还要替换 a. 注意这种情况不会有 b=1,因为 b=1 就有 a=1, 必然 = F) // case 2: a+1 <= F < a+b (操作 1 次) // (因为 F < a+b, 只需要减小 b 即可) // case 3: a+b = F (不需要操作) // case 4: b+a < F <= b+limit (操作 1 次) // (类比 case 2,增大 a 即可) // case 5: b+a < b+limit < F <= limit+limit (操作 2 次) // (类比 case 1, 这种情况不会有 a=limit,因为 a=limit 就有 b=limit,必然 = F) // // 可以发现 5 种情况正好是彼此相邻的区间,可以用差分数组来加速统计 **nums 所有数字对**转换为不同情况 F 的总操作数 int n = nums.size(); // 目标和最大是 2*limit,如果 b 是 limit,我们就需要访问 limit*2 + 1 这个下标 vector<int> diff(limit*2+2,0); for(int i=0;i<(n>>1);i++){ int a=min(nums[i],nums[n-1-i]); int b=max(nums[i],nums[n-1-i]); // 接下来看 <a, b> 这一组数,转换为 case 1-5 情况所需要的操作数 diff[2]+=2; // 垫底情况,转换两次 a+b=2 diff[a+1]-=1; // 进入 case2,少一次转换 diff[a+b]-=1; // 进入 case3,再少一次 diff[a+b+1]+=1; // 进入 case4,多一次 diff[b+limit+1]+=1; // 进入 case5,多一次 } // 统计每一对转换为每种情况的操作次数后,就可以进行统计了,看所有数转换为哪个 F 操作数最少 int numOps=0; int res=2*n; for(int F=2;F<=(limit<<1);F++){ numOps+=diff[F]; res=min(res,numOps); } return res; } }; 2 个帖子 - 2 位参与者 阅读完整话题

IT之家 · 2026-05-09 14:44:00+08:00 · tech

IT之家 5 月 9 日消息,乘联分会秘书长崔东树发文称,根据海关数据,2026 年 4 月,中国汽车出口在高油价、运力紧张背景下实现强势突破, 整车出口 93.9 万台,161 亿美元,量、额同比分别增长 51%、44% 。 当前,我国以新能源产品为核心,精准承接全球市场对低能耗车型的旺盛需求,对冲油价波动影响,形成“高油价 → 新能源优势放大 → 出口加速”的正向循环。 与此同时,汽车零部件出口同步稳步增长,重点服务欧美成熟市场,依托完善的供应链体系,为全球车企提供稳定配套,形成“零部件深耕欧美、整车辐射全球”的交叉互补格局,产业链协同效应凸显,共同支撑中国汽车产业的全球竞争力持续提升。 参考IT之家先前报道,乘联分会昨天公布了 2026 年 4 月全国乘用车市场数据,4 月 1-30 日,全国乘用车新能源零售渗透率 62.8%;4 月 1-30 日,全国乘用车厂商新能源批发渗透率 57.3%。

www.ithome.com · 2026-04-25 14:31:17+08:00 · tech

IT之家 4 月 25 日消息,据央视新闻从中国华能获悉,今天(4 月 25 日)上午,在云南大理,随着德安、龙街等光伏场站并网发电,我国首个全国产控制系统水光互补项目正式投运。 报道称, 项目总装机容量达 543 万千瓦 ,其中水电装机 420 万千瓦,光伏项目装机规模超 123 万千瓦。项目通过“水光协同、储送一体”,有效破解光伏大规模并网带来的波动性难题,确保电力安全稳定供应。 IT之家查询获悉,光伏电站只能在白天发电,晚上完全没电;阳光充足时发电多,阴天发电少,具有波动性、间歇性,因此发电曲线呈锯齿状。 水光互补,即将光伏接入水电站 ,用水电优异的调节性能平抑光伏输出功率的波动性。光伏电站发出的电并不会直接接入电网,而是通过线路接入水电站,和水电站发出的电捆绑再接入电网。