优选算法——滑动窗口2

优选算法——滑动窗口2

优选算法——滑动窗口

1.1004. 最大连续1的个数 III

题目描述

在这里插入图片描述

思路分析

这道题的核心是:找一个最长的子数组,其中最多包含 k 个 0

经典的 滑动窗口 问题。

为什么用滑动窗口?

  • 我们需要连续区间 → 滑动窗口天然适合
  • 窗口内维护「0 的个数 ≤ k」这个约束
  • 窗口扩张:右指针右移,遇到 0 就计数
  • 窗口收缩:当 0 的个数超过 k,左指针右移直到满足条件

算法流程

1. 初始化:left = 0, zeroCount = 0, maxLen = 0 2. 遍历数组,right 指针右移: - 如果 nums[right] == 0,zeroCount++ - 当 zeroCount > k 时,收缩左边界: - 如果 nums[left] == 0,zeroCount-- - left++ - 更新 maxLen = max(maxLen, right - left + 1) 3. 返回 maxLen 
在这里插入图片描述

代码实现

classSolution{public:intlongestOnes(vector<int>& nums,int k){int zero=0;int ret=0;for(int left=0,right=0;right<nums.size();right++){if(nums[right]==0) zero++;//进窗口while(zero>k)//判断if(nums[left++]==0) zero--;//出窗口 ret=max(ret,right-left+1);}return ret;}};

2.1658. 将 x 减到 0 的最小操作数

题目描述

在这里插入图片描述

给定一个整数数组 nums 和整数 x。每次操作可以从数组最左端或最右端移除一个元素,使 x 减去该元素的值。返回将 x 恰好减到 0 的最小操作数,无法实现则返回 -1。

示例:

输入:nums = [1,1,4,2,3], x = 5 输出:2 解释:移除最右端的 3,再移除最右端的 2,x = 5 - 3 - 2 = 0 

思路分析

逆向思维 + 滑动窗口

从两端取数 → 等价于找一个中间连续子数组,其和为 total - x

  • 设数组总和为 sum
  • 问题转化为:找最长的子数组,使其和为 sum - x
  • 最小操作数 = n - 最长子数组长度

为什么?

  • 两端取走的元素和 = x
  • 剩下中间的元素和 = sum - x
  • 操作数最少 → 中间剩余最长

算法流程

1. 计算 target = sum(nums) - x 2. 如果 target &lt; 0,返回 -1(总和都不够减) 3. 滑动窗口找和为 target 的最长子数组 4. 返回 n - maxLen(若 maxLen 有效) 
在这里插入图片描述

代码实现

classSolution{public:intminOperations(vector<int>& nums,int x){int sum =0;int cmp=0;int ret=-1;for(auto e :nums){ sum+=e;}int target=sum-x;if(target<0)return-1;for(int left=0,right=0;right<nums.size();right++){ cmp+=nums[right];//进窗口while(cmp>target)//判断{ cmp-=nums[left++];//出窗口}if(cmp==target)//更新结果 ret=max(ret,right-left+1);}if(ret==-1)return ret;elsereturn nums.size()-ret;}};

Read more

【讨论】VR + 具身智能 + 人形机器人:通往现实世界的智能接口

【讨论】VR + 具身智能 + 人形机器人:通往现实世界的智能接口

摘要:本文探讨了“VR + 具身智能 + 人形机器人”作为通往现实世界的智能接口的前沿趋势。文章从技术融合、应用场景、商业潜力三个维度分析其价值,涵盖工业协作、教育培训、医疗康复、服务陪护等领域,并展望VR赋能下的人机共生未来,揭示具身智能如何推动机器人真正理解、感知并参与现实世界。 VR + 具身智能 + 人形机器人:通往现实世界的智能接口 文章目录 * VR + 具身智能 + 人形机器人:通往现实世界的智能接口 * 一、引言:三股力量的融合,正在重塑现实世界 * 二、具身智能:让AI拥有“身体”的智慧 * 1. 什么是具身智能(Embodied Intelligence) * 2. 为什么VR是具身智能的“孵化器” * 三、VR + 具身智能 + 人形机器人:协同结构与原理 * 1. 系统组成 * 2. 人类的“

By Ne0inhk
Flutter 组件 bip340 适配鸿蒙 HarmonyOS 实战:次世代 Schnorr 签名,为鸿蒙 Web3 与隐私计算筑牢加密防线

Flutter 组件 bip340 适配鸿蒙 HarmonyOS 实战:次世代 Schnorr 签名,为鸿蒙 Web3 与隐私计算筑牢加密防线

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 bip340 适配鸿蒙 HarmonyOS 实战:次世代 Schnorr 签名,为鸿蒙 Web3 与隐私计算筑牢加密防线 前言 在鸿蒙(OpenHarmony)生态迈向去中心化金融(DeFi)、隐私通讯及安全资产管理等高阶安全场景的背景下,如何实现更高性能、更具扩展性且抗攻击能力的数字签名架构,已成为决定应用闭环安全性的“压舱石”。在鸿蒙设备这类强调分布式鉴权与芯片级安全(TEE/SE)的移动终端上,如果依然沿用传统的 ECDSA 签名算法,由于由于其固有的可延展性风险与高昂的聚合验证成本,极易由于由于在大规模节点验证时的 CPU 负载过高导致交互滞后。 我们需要一种能够实现签名线性聚合、计算逻辑极简且具备原生抗延展性的密码学方案。 bip340 为 Flutter 开发者引入了比特币 Taproot 升级的核心——Schnorr 签名算法。它不仅在安全性上超越了传统标准,更通过其线性的数学特性,

By Ne0inhk
《MySQL 表基础语法:从入门到熟练的核心技巧》

《MySQL 表基础语法:从入门到熟练的核心技巧》

前引:MySQL 表的增删查是数据库操作的基础,也是日常开发、数据分析中最高频的需求。很多初学者会卡在语法细节、场景适配或效率优化上,明明掌握了基础命令,实际应用中却频频出错。本文聚焦 “实用 + 避坑”,从核心语法到高频场景,再到优化技巧,帮你彻底吃透 MySQL 表增删查,告别 “只会用不会用对” 的尴尬 SQL查询中各个关键字的执行先后顺序: from > on> join > where > group by > with > having > select > distinct > order by > limit 目录 【一】增 (1)基本创建 (2)

By Ne0inhk
Spring Boot 4.0 与 Spring Cloud Alibaba 2025 整合完整指南

Spring Boot 4.0 与 Spring Cloud Alibaba 2025 整合完整指南

Spring Boot 4.0 与 Spring Cloud Alibaba 2025 整合完整指南 Spring Cloud全栈实战:手撸企业级项目,从入门到架构师! 概述 本文将详细介绍如何在 Spring Boot 4.0 中整合 Spring Cloud Alibaba 2025 最新版本。Spring Cloud Alibaba 为分布式应用开发提供了一站式解决方案,包含服务发现、配置管理、流量控制等核心功能。 环境要求 Spring Cloud全栈实战:手撸企业级项目,从入门到架构师! * JDK: 21+ (Spring Boot 4.0 要求) * Maven: 3.6+ 或 Gradle

By Ne0inhk