当前位置: 首页 > news >正文

Python-算法编程100例-滑动窗口(入门级)

题目1:最大连续1的个数(简单)

给定一个二进制数组 nums , 计算其中最大连续 1 的个数。

解答:前缀和+双指针

# 给定一个二进制数组 nums , 计算其中最大连续 1 的个数。
from typing import Listclass Solution:def findMaxConsecutiveOnes(self, nums: List[int]) -> int:idx_1 = []count_0 = [0] * len(nums)for i in range(len(nums)):if nums[i] == 1:idx_1.append(i)count_0[i] = i - len(idx_1) + 1left = 0right = 0max_len_1 = 0while right < len(idx_1):flaw_0 = count_0[idx_1[right]] - count_0[idx_1[left]]if flaw_0 == 0:max_len_1 = max(max_len_1, right-left+1)right += 1else:left += 1print(max_len_1)

题目2:最大连续1的个数(中等)

给定一个二进制数组 nums 和一个整数 k,如果可以翻转最多 k 个 0 ,则返回 数组中连续 1 的最大个数 。

解答:滑动窗口-贪吃蛇-右边无脑滑动、坐边看情况收缩

from typing import List
# 贪吃蛇-右边无脑滑动、坐边看情况收缩
class Solution:def longestOnes(self, nums: List[int], k: int) -> int:s = len(nums)left = 0count = 0max_len = 0for right in range(s):if nums[right] == 0:count += 1while count > k:# 结算max_len = max(max_len, right - left)if nums[left] == 0:count -= 1left += 1max_len = max(max_len, right - left + 1)print(max_len)

题目3:最长空闲内存

某系统中有一空间连续的内存,被划分成多个大小相同的内存块。内存的使用状态记录在字符串memory中,每个内存块状态用x或者.表示,
# 其中x表示内存被使用,.表示内存空闲
现在最多可以释放其中cnt个内存块(即将字符串中的x变成.),以获得一块空间连续的且最长的空闲内存,请计算并返回该最长空闲内存的内存块数量

解答:动窗口-贪吃蛇-右边无脑滑动、坐边看情况收缩

class Solution:def max_free_memory(self, memory, cnt):s = len(memory)left = 0count = 0max_len = 0for right in range(s):if memory[right] == "x":count += 1while count > cnt:# 结算max_len = max(max_len, right - left)if memory[left] == "x":count -= 1left += 1max_len = max(max_len, right - left + 1)print(max_len)

 

 

相关文章:

Python-算法编程100例-滑动窗口(入门级)

题目1&#xff1a;最大连续1的个数&#xff08;简单&#xff09; 给定一个二进制数组 nums &#xff0c; 计算其中最大连续 1 的个数。 解答&#xff1a;前缀和双指针 # 给定一个二进制数组 nums &#xff0c; 计算其中最大连续 1 的个数。 from typing import Listclass So…...

ffmpeg使用mjpeg把yuvj420p编码为jpg图像

version #define LIBAVUTIL_VERSION_MAJOR 58 #define LIBAVUTIL_VERSION_MINOR 12 #define LIBAVUTIL_VERSION_MICRO 100 node 不使用AVOutputFormat code void CFfmpegOps::EncodeYUVJ420pToMJPEG(const char* infile, const char* width_str, const char* height_s…...

龙迅#LT6911GXC支持HDMI2.1转MIPI/4PORT LVDS应用功能,分辨率高达8K30HZ/4K120HZ压缩格式。

1. 描述 该LT6911GXC是一款高性能HD-DVI2.1转MIPI或LVDS芯片&#xff0c;适用于VR/显示应用。 HDCP RX作为HDCP中继器的上游&#xff0c;可以与其他芯片的HDCP TX配合实现中继器功能。 对于 HD-DVI2.1 输入&#xff0c;LT6911GXC可以配置为 3/4 通道。 对于MIPI输出&#xff0c…...

.NET 6.0 Web API项目中实现基于Token的身份验证

本文以一个完整的示例&#xff0c;展示如何在.NET 6.0 Web API项目中实现基于Token的身份验证。这个例子包括了如何创建和验证JWT Token&#xff0c;以及如何在控制器中使用这些Token。 步骤 1: 创建Web API项目 首先&#xff0c;用Visual Studio 2022创建一个基于.NET6.0的 …...

Java常用对象的快速初始化

在Java中&#xff0c;有多种方式来快速初始化各种常用对象&#xff0c;如字符串数组&#xff08;String[]&#xff09;&#xff0c;集合列表&#xff08;List&#xff09;&#xff0c;映射表&#xff08;Map&#xff09;&#xff0c;以及集合&#xff08;Set&#xff09;。不同…...

逻辑回归模型模拟实现:从零开始

引言 逻辑回归是一种用于二分类问题的机器学习算法。尽管它的名字中有“回归”&#xff0c;但它实际上是用于分类的。在本文中&#xff0c;我们将通过模拟数据来演示逻辑回归模型的实现。 逻辑回归简介 逻辑回归通过使用逻辑函数&#xff08;通常是Sigmoid函数&#xff09;将…...

Docker基本使用和认识

目录 基本使用 镜像仓库 镜像操作 Docker 如何实现镜像 1) namespace 2) cgroup 3) LXC Docker常见的网络类型 bridge网络如何实现 基本使用 镜像仓库 镜像仓库登录 1)docker login 后面不指定IP地址&#xff0c;则默认登录到 docker hub 上 退出 2)docker logo…...

Halcon 文本文件操作,形态学

一文件的读写 *******************************************************向文本文件写入字符串内容*************************************************************read_image (Image, fabrik)threshold (Image, Region, 0, 120)area_center (Region, Area, Row, Column)open_…...

【鸿蒙】稍微理解一下Stage模型

鸿蒙的Stage模型是HarmonyOS多端统一的应用开发框架中的一个核心概念&#xff0c;用于描述应用的界面层次结构和组件之间的关系。下面将详细解析Stage模型的主要组成部分和特点&#xff1a; 模型组成&#xff1a; UIAbility组件&#xff1a;这是应用中负责绘制用户界面的组件&a…...

毕业答辩制作PPT【攻略】

毕业答辩制作PPT【攻略】 前言版权毕业答辩制作PPT【攻略】一、WPS AI 15天免费会员二、AI文档生成PPT三、修改完善PPT 最后 前言 2024-06-14 23:43:05 以下内容源自《【攻略】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN…...

深入解析npm install --save-dev:开发依赖管理的艺术

npm&#xff08;Node Package Manager&#xff09;是JavaScript编程语言的包管理器&#xff0c;用于管理项目中的依赖关系。在开发过程中&#xff0c;合理地管理依赖是保证项目可维护性和可扩展性的关键。npm install命令是npm中最常用的命令之一&#xff0c;而--save-dev参数则…...

福布斯 AI 50 榜单中唯一开源向量数据库:Weaviate

本篇文章&#xff0c;聊聊福布斯全球网站前俩月发布的 2023 AI 50 榜单中的唯一一个开源的向量数据库&#xff1a;Weaviate。 它在数据持久化和容错性上表现非常好、支持混合搜索、支持水平扩展&#xff0c;同时又保持了轻量化。官方主打做 AI 时代的原生数据库&#xff0c;减…...

信息学奥赛初赛天天练-38-CSP-J2021阅读程序-约数个数、约数和、埃氏筛法、欧拉筛法筛素数应用

PDF文档公众号回复关键字:20240628 2021 CSP-J 阅读程序3 1阅读程序(判断题1.5分 选择题3分 共计40分 ) 01 #include<stdio.h> 02 using namespace std; 03 04 #define n 100000 05 #define N n1 06 07 int m; 08 int a[N],b[N],c[N],d[N]; 09 int f[N],g[N]; 10 11 …...

第100+13步 ChatGPT学习:R实现决策树分类

基于R 4.2.2版本演示 一、写在前面 有不少大佬问做机器学习分类能不能用R语言&#xff0c;不想学Python咯。 答曰&#xff1a;可&#xff01;用GPT或者Kimi转一下就得了呗。 加上最近也没啥内容写了&#xff0c;就帮各位搬运一下吧。 二、R代码实现决策树分类 &#xff08;…...

Hi3861 OpenHarmony嵌入式应用入门--LiteOS MessageQueue

CMSIS 2.0接口中的消息&#xff08;Message&#xff09;功能主要涉及到实时操作系统&#xff08;RTOS&#xff09;中的线程间通信。在CMSIS 2.0标准中&#xff0c;消息通常是通过消息队列&#xff08;MessageQueue&#xff09;来进行处理的&#xff0c;以实现不同线程之间的信息…...

ffmpeg编码图象时报错Invalid buffer size, packet size * < expected frame_size *

使用ffmpeg将单个yuv文件编码转为jpg或其他图像格式时&#xff0c;报错&#xff1a; Truncating packet of size 11985408 to 3585 [rawvideo 0x1bd5390] Packet corrupt (stream 0, dts 1). image_3264_2448_0.yuv: corrupt input packet in stream 0 [rawvideo 0x1bd7c60…...

解决类重复的问题

1.针对AndroidX 类重复问题 解决办法&#xff1a; android.useAndroidXtrue android.enableJetifiertrue2.引用其他sdk出现类重复的问题解决办法&#xff1a;configurations {all { // You should exclude one of them not both of themexclude group: "com.enmoli"…...

使用 shell 脚本 统计app冷启动耗时

下面是一个 shell 脚本&#xff0c;它使用 参数将包名称作为参数--app&#xff0c;识别相应应用程序进程的 PID&#xff0c;使用 终止该进程adb shell kill&#xff0c;最后使用 重新启动该应用程序adb shell am start&#xff1a; #!/bin/bash# Check if package name is pro…...

使用容器部署redis_设置配置文件映射到本地_设置存储数据映射到本地_并开发java应用_连接redis---分布式云原生部署架构搭建011

可以看到java应用的部署过程,首先我们要准备一个java应用,并且我们,用docker,安装一个redis 首先我们去start.spring.io 去生成一个简单的web项目,然后用idea打开 选择以后下载 放在这里,然后我们去安装redis 在公共仓库中找到redis . 可以看到它里面介绍说把数据放到了/dat…...

第五节:如何使用其他注解方式从IOC中获取bean(自学Spring boot 3.x的第一天)

大家好&#xff0c;我是网创有方&#xff0c;上节我们实践了通过Bean方式声明Bean配置。咱们这节通过Component和ComponentScan方式实现一个同样功能。这节实现的效果是从IOC中加载Bean对象&#xff0c;并且将Bean的属性打印到控制台。 第一步&#xff1a;创建pojo实体类studen…...

惠普OMEN游戏本性能优化终极指南:如何用开源工具彻底释放硬件潜力

惠普OMEN游戏本性能优化终极指南&#xff1a;如何用开源工具彻底释放硬件潜力 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度&#xff0c;自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 还在为惠普OMEN游戏本官方软…...

Kali+MSF 安全攻防实操|Windows 渗透完整流程教程

入侵电脑&#xff0c;并没有我们想象的那么难&#xff0c;今天我们的文章主要是给一些基础比较薄弱的小伙伴们准备的&#xff0c;如果你从来没有利用msf进入过对方计算机&#xff0c;就赶紧找个风和日丽的下午&#xff0c;跟着博主一起来试试吧~ 01 什么是msf 演示环境 02 …...

基于Rust构建AI智能体平台:架构设计与工程实践

1. 从零到一&#xff1a;构建你自己的AI智能体平台最近几年&#xff0c;大语言模型&#xff08;LLM&#xff09;的爆发式发展&#xff0c;让“智能体”&#xff08;Agent&#xff09;从一个学术概念&#xff0c;迅速变成了提升工作效率的利器。你可能用过一些现成的AI工具&…...

MTKClient实战指南:联发科设备刷机与逆向工程全面解决方案

MTKClient实战指南&#xff1a;联发科设备刷机与逆向工程全面解决方案 【免费下载链接】mtkclient MTK reverse engineering and flash tool 项目地址: https://gitcode.com/gh_mirrors/mt/mtkclient MTKClient是一款专为联发科芯片设备设计的开源逆向工程与刷机工具&am…...

基于Next.js 15与React 19构建现代化个人作品集:技术选型与工程实践

1. 项目概述&#xff1a;为什么选择 Next.js 15 构建现代个人作品集 作为一名在前后端领域摸爬滚打了十多年的开发者&#xff0c;我见过也亲手搭建过无数种个人作品集网站。从早期的纯静态 HTML/CSS&#xff0c;到 jQuery 时代&#xff0c;再到 React/Vue 等框架的兴起&#x…...

【无人机】基于动态反演和扩展状态观测器的无人机鲁棒姿态控制研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 完整代码获取 定制创新 论文复现点击&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab…...

Cognize-Agent™空间智能体,98.5%故障预警准确率,终结非计划停机

Cognize-Agent™空间智能体&#xff0c;98.5%故障预警准确率&#xff0c;终结非计划停机工业制造领域&#xff0c;设备非计划停机始终是制约生产效率、拉高运维成本的核心痛点。传统设备运维依赖定期检修、事后抢修&#xff0c;依赖人工巡检与单一数据监测&#xff0c;无法提前…...

共享屏幕怎么弄 共享屏幕用什么工具好

共享屏幕怎么弄&#xff1f;不管是异地办公同步方案、远程协助操作设备&#xff0c;还是和朋友分享游戏画面&#xff0c;都离不开共享屏幕的需求。共享屏幕怎么弄才不麻烦、不卡顿&#xff1f;其实答案很简单&#xff0c;无界趣连2.0就能轻松搞定&#xff0c;不用复杂设置&…...

为OpenClaw智能体工作流配置持久化的大模型服务支持

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为OpenClaw智能体工作流配置持久化的大模型服务支持 在构建基于OpenClaw的智能体工作流时&#xff0c;一个稳定、可靠的后端大模型…...

告别按钮!用Qt实现STM32小车的键盘与手柄控制方案(附串口通信源码)

超越按钮控制&#xff1a;Qt框架下STM32小车的键盘与手柄交互方案 在嵌入式开发领域&#xff0c;人机交互体验往往被忽视&#xff0c;而实际上它直接影响着用户的操作效率和舒适度。对于STM32遥控小车这类需要实时操控的项目&#xff0c;传统的按钮点击方式存在明显局限——操作…...