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

leetcode 408周赛 3234. 统计 1 显著的字符串的数量

3234. 统计 1 显著的字符串的数量

题目描述

给你一个二进制字符串 s

请你统计并返回其中 1 显著 的子字符串的数量。

如果字符串中 1 的数量 大于或等于 0 的数量的 平方,则认为该字符串是一个 1 显著 的字符串 。

思路

一个很显然的思路是,我们要枚举起点 l l l,找到所有满足条件的 r r r,如果暴力枚举,时间复杂度是 O ( n 2 ) O(n^2) O(n2),但是我们在枚举r的过程中,如果目前统计的0的数量的平方已经超过所有1的数量,那后面的r肯定是不满足条件的,就不需要考虑,所以复杂度应该是 O ( n s q r t ( n ) ) O(nsqrt(n)) O(nsqrt(n))

写起来极其麻烦

class Solution {
public:int numberOfSubstrings(string s) {int n = s.size();s = ' ' + s;vector<int>pre0(n + 2), pre1(n + 2);vector<int>pos;for(int i = 1; i <= n; ++i){pre0[i] = pre0[i - 1] + (s[i] == '0' ? 1 : 0);pre1[i] = pre1[i - 1] + (s[i] == '1' ? 1 : 0);if(s[i] == '0')pos.push_back(i);}pre0[n + 1] = pre0[n];pre1[n + 1] = pre1[n];pos.push_back(n + 1);int ans = 0;for(int i = 1; i <= n; ++i){//枚举起点int id = lower_bound(pos.begin(), pos.end(), i + 1) - pos.begin();//找到下一个0的位置int pre_id = i - 1;int num0 = s[i] == '0';for(int j = id; j < pos.size(); ++j){int k = pos[j];if(num0 == 0){ans += max(0, pre1[k] - pre1[pre_id]);}else{ans +=  min(k - pre_id,  max(0, pre1[k] - pre1[i - 1] - num0 * num0 + 1));} ++num0;if(num0 * num0 > pre1[n])break;pre_id = k;}}return ans;}
};

相关文章:

leetcode 408周赛 3234. 统计 1 显著的字符串的数量

3234. 统计 1 显著的字符串的数量 题目描述 给你一个二进制字符串 s。 请你统计并返回其中 1 显著 的子字符串的数量。 如果字符串中 1 的数量 大于或等于 0 的数量的 平方&#xff0c;则认为该字符串是一个 1 显著 的字符串 。 思路 一个很显然的思路是&#xff0c;我们…...

容器对比虚拟机有哪些不足?

引言 在当今的云计算和微服务架构中&#xff0c;容器技术已成为不可或缺的一部分。它以其轻量级、高效和快速部署的特性&#xff0c;赢得了广大开发者和运维人员的青睐。然而&#xff0c;正如任何技术都有其两面性&#xff0c;容器技术也不例外。本文将对容器技术在安全性、隔离…...

C# 归并排序

栏目总目录 概念 归并排序是一种分而治之的排序算法。它将一个大数组分成两个小数组&#xff0c;递归地对这两个小数组进行排序&#xff0c;然后将排序好的小数组合并成一个有序的大数组。这个过程一直递归进行&#xff0c;直到数组被拆分成只有一个元素的数组&#xff08;自然…...

【请求代理】springboot单机服务基于过滤器Filter实现第三方服务器接口请求代理功能

springboot单机服务基于过滤器Filter实现第三方服务器接口请求代理功能 一、前言二、解决思路三、基于gateway实现四、基于过滤器Filter实现五、问题总结 **注&#xff1a;本文源码获取或者更多资料&#xff0c;关注公众号&#xff1a;技术闲人**一、前言 在项目开发时会遇到w…...

.NET Core异步编程与多线程解析:提升性能与响应能力的关键技术

在.NET Core中&#xff0c;异步编程和多线程是构建高性能应用程序的核心技能。理解这两个概念不仅可以提升应用程序的响应能力&#xff0c;还能优化资源使用。本文将深入剖析异步编程和多线程的关键知识点&#xff0c;提供代码示例&#xff0c;并附上步骤以帮助理解。 1. 异步…...

Photoshop(PS) 抠图简单教程

目录 快速选择 魔棒 钢笔 橡皮擦 蒙版 通道 小结 可以发现&#xff0c;ps逐渐成为必备基础的办公软件。本文让ps新手轻松学会抠图。 快速选择 在抠图之前&#xff0c;先了解下选区的概念。ps中大多数的抠图操作都是基于选区的&#xff0c;先选区再Ctrl J提取选区。而快…...

项目管理中的常用工件(二):可视化工件

项目管理中的常用工件&#xff08;二&#xff09;&#xff1a;可视化工件 亲和图&#xff08;affinity diagram&#xff09;因果图&#xff08;cause-and-effect diagram&#xff09;直方图&#xff08;histogram&#xff09;流程图&#xff08;flowchart&#xff09;散点图&am…...

Git入门与实战:版本控制的艺术

&#x1f341; 作者&#xff1a;知识浅谈&#xff0c;CSDN签约讲师&#xff0c;CSDN博客专家&#xff0c;华为云云享专家&#xff0c;阿里云专家博主 &#x1f4cc; 擅长领域&#xff1a;全栈工程师、爬虫、ACM算法 &#x1f525; 微信&#xff1a;zsqtcyw 联系我领取学习资料 …...

[Mysql-DML数据操作语句]

目录 数据增加&#xff1a;INSERT 全字段插入&#xff1a; 部分字段插入&#xff1a; 一次性添加多条&#xff1a; 数据修改&#xff1a;UPDATE 数据删除&#xff1a;DELECT delete truncate drop 区别 数据增加&#xff1a;INSERT 总体格式&#xff1a;insert into 表…...

Tableau入门|数据可视化与仪表盘搭建

原视频链接&#xff08;up:戴戴戴师兄&#xff09;&#xff0c;文章为笔者的自学笔记&#xff0c;用于复习回顾&#xff0c;原视频下方有原up整理的笔记&#xff0c;更加直观便捷。因为视频中间涉及的细节较多&#xff0c;建议一边操作&#xff0c;一边学习。 整体介绍 可视化…...

API 技术开发分享:连接电商平台数据获取的桥梁

在当今数字化的时代&#xff0c;API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;技术成为了实现不同系统之间通信和数据交换的关键。它就像是一座无形的桥梁&#xff0c;使得各种应用能够相互协作&#xff0c;共享资源&#xff0c;…...

区块链如何助力数字版权保护和内容创作者的权益?

区块链技术可以助力数字版权保护和内容创作者的权益&#xff0c;主要有以下几个方面&#xff1a; 去中心化的版权登记和溯源&#xff1a;区块链可作为一个可信的去中心化数据库&#xff0c;记录并验证数字内容的版权信息。内容创作者可以将自己的作品信息存储在区块链上&#x…...

记一次老旧项目的整体技术升级

最近给公司采购的老旧的 node8 vue2.6 webpack3 npm 项目做构建优化 背景&#xff1a;整个项目 build 一次 20 min &#xff0c;本地冷启动和热更新也忒慢&#xff0c;依赖 npm i 一下也得装个 20 min 众所周知&#xff0c;Node 版本&#xff0c;依赖包管理工具 和 构建工…...

2024年最受欢迎的五大上网审计设备和软件

在2024年的市场上&#xff0c;上网行为审计设备和软件种类繁多&#xff0c;它们帮助企业监控和管理员工的网络活动&#xff0c;确保网络安全并提高工作效率。下面是一些受欢迎的上网行为审计设备和软件。 2024年最受欢迎的上网行为审计设备和软件如下 1.安企神软件&#xff1a…...

sed利用脚本处理文件

一、sed是什么 sed 命令是利用脚本来处理文本文件。它可以依照脚本的指令来处理、编辑文本文件。主要用来自动编 辑一个或多个文件、简化对文件的反复操作、编写转换程序等。 二、sed的原理 读入新的一行内容到缓存空间&#xff1b; 从指定的操作指令中取出第一条指令&…...

泰山派RK3566开发板800x1280MIPI屏设备树补丁

泰山派RK3566开发板800x1280MIPI屏设备树补丁 泰山派下800 X 1280分辨率MIPI屏调试&#xff0c;设备树补丁如下&#xff1a; https://download.csdn.net/download/qq_45143522/89584066 用kernel.patch文件&#xff0c;在泰山派内核源码下打补丁即可完成更新&#xff0c;或者…...

informer中的indexer机制的实现分析与源码解读

1. 背景 client-go工具下的tools/cache.indexer为informer提供缓存与索引的能力。可以实现快速通过索引找到对应的对象(pod, deployment,secret,configmap等)。 indexer再informer机制中的使用图示&#xff1a; indexer包括2部分: 一部分是store用于实际数据的存储&#xff0c;…...

英特尔宣布针对对Llama 3.1进行优化 以提升所有产品的性能

日前Meta正式发布了Llama 3.1开源大模型&#xff0c;以其庞大的参数量和卓越性能&#xff0c;首次在多项基准测试中击败了GPT-4o等业界领先的闭源模型。允许开发者自由地进行微调、蒸馏&#xff0c;甚至在任何地方部署&#xff0c;这种开放性为AI技术的普及和创新提供了无限可能…...

Python3网络爬虫开发实战(1)爬虫基础

一、URL 基础 URL也就是网络资源地址&#xff0c;其满足如下格式规范 scheme://[username:password]hostname[:port][/path][;parameters][?query][#fragment] scheme&#xff1a;协议&#xff0c;常用的协议有 Http&#xff0c;https&#xff0c;ftp等等&#xff1b;usern…...

Redis的五种数据类型与命令

目录 引言 一 Redis的特性 二 Redis的安装 三 Redis的优点 四 Redis的五种数据类型与命令 五 Redis的配置文件 引言 Redis是什么&#xff1f; Remote Dictionary Service(远程字典服务器) Redis 是一个开源的(BSD许可)的&#xff0c;C语言编写的&#xff0c;高性能的数…...

如何用res-downloader解决多平台资源下载难题:从入门到精通

如何用res-downloader解决多平台资源下载难题&#xff1a;从入门到精通 【免费下载链接】res-downloader 资源下载器、网络资源嗅探&#xff0c;支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: https://gitcod…...

ComfyUI-Easy-Use:GPU资源优化与深度学习推理效能提升实践

ComfyUI-Easy-Use&#xff1a;GPU资源优化与深度学习推理效能提升实践 【免费下载链接】ComfyUI-Easy-Use In order to make it easier to use the ComfyUI, I have made some optimizations and integrations to some commonly used nodes. 项目地址: https://gitcode.com/g…...

Stable Yogi Leather-Dress-Collection数据预处理教程:准备高质量训练数据集

Stable Yogi Leather-Dress-Collection数据预处理教程&#xff1a;准备高质量训练数据集 想用Stable Diffusion微调出专属于你的皮革连衣裙模型&#xff1f;第一步&#xff0c;也是最关键的一步&#xff0c;就是准备一个高质量的数据集。很多人觉得模型训练很神秘&#xff0c;…...

5分钟搞定!Cesium/Leaflet/OpenLayers调用免费瓦片地图资源全攻略

三大地图框架快速调用免费瓦片资源实战指南 第一次接触GIS开发时&#xff0c;最让人头疼的莫过于地图底图资源的获取。作为项目的基础支撑&#xff0c;地图瓦片的质量和稳定性直接影响最终用户体验。但商业地图API往往价格不菲&#xff0c;对个人开发者和小型项目来说成本压力较…...

基于FLUX.2-klein-base-9b-nvfp4的Java后端服务集成指南

基于FLUX.2-klein-base-9b-nvfp4的Java后端服务集成指南 最近在做一个内容创作平台的后台重构&#xff0c;产品经理提了个需求&#xff0c;希望用户上传的草图或者简单的线框图&#xff0c;能自动转换成更精美的概念图。这要是放在以前&#xff0c;要么找设计师手动处理&#…...

选题毫无头绪?高校导师推荐这几个AI论文写作工具

写论文总是卡壳&#xff1f;选题没方向、结构不清晰、文献找不全、语言不专业……这些痛点让很多学生倍感压力。其实&#xff0c;只要用对 AI 工具、走对写作流程&#xff0c;就能大幅提升效率。资深教授普遍建议&#xff1a;千笔AI&#xff08;中文全流程首选&#xff09; 豆包…...

手把手玩转Bagging分类——用Matlab实现工业故障检测

Bagging分类 Matlab代码 可用于故障检测等 基于集成算法Bagging的数据分类预测(可以更换为单、多变量时序预测/回归&#xff0c;前私我)&#xff0c;Matlab代码&#xff0c;可直接运行&#xff0c;适合小白新手 [憨笑]程序已经调试好&#xff0c;无需更改代码替换数据集即可运行…...

C++ Move 构造函数性能影响

C Move构造函数性能影响探析 在现代C编程中&#xff0c;Move构造函数是提升性能的重要工具之一。它通过“窃取”临时对象的资源而非深拷贝&#xff0c;显著减少了不必要的内存分配和数据复制。Move构造函数的性能影响并非总是显而易见&#xff0c;其实际效果取决于多种因素。本…...

如何在Python中正确调用DeepSeek-Reasoner获取思考过程(附完整代码示例)

深度解析&#xff1a;Python调用DeepSeek-Reasoner获取思维链的工程实践 当开发者需要构建具备复杂推理能力的AI应用时&#xff0c;获取模型完整的思考过程&#xff08;Reasoning Content&#xff09;往往比最终答案更有价值。DeepSeek-Reasoner作为专为逻辑推理优化的模型&…...

Nano-Banana在工业检测中的应用:产品缺陷自动识别与标注

Nano-Banana在工业检测中的应用&#xff1a;产品缺陷自动识别与标注 1. 引言 想象一下&#xff0c;在繁忙的生产线上&#xff0c;质检员需要每天检查成千上万的零件表面是否有划痕、凹陷或瑕疵。这种重复性工作不仅容易让人疲劳&#xff0c;还可能出现漏检误检的情况。传统的…...