力扣1703.得到连续K个1的最少相邻交换次数

news2024/9/22 9:42:43

力扣1703.得到连续K个1的最少相邻交换次数

  • 中位数贪心 + 前缀和

    • 在这里插入图片描述

    • 设pi = qi - i,则问题变为所有pi到x的距离和的最小值

    • 同时x应取pi的中位数

    • 因此枚举i作为最左端的1,求最小值即可

    • 推出距离和公式:s[i] + s[i+k] - s[i+k/2]2 - p[i+k/2](k%2)

  •   class Solution {
      public:
          int minMoves(vector<int>& nums, int k) {
              vector<int> p;
              for(int i=0;i<nums.size();i++)
                  if(nums[i])
                      p.push_back(i-p.size());
              int m = p.size(),s[m+1];
              s[0] = 0;
              for(int i=1;i<=m;i++)
                  s[i] = s[i-1] + p[i-1];
              int ans = INT_MAX;
              for(int i=0;i<=m-k;i++)
                  ans = min(ans,s[i] + s[i+k] - s[i+k/2]*2 - p[i+k/2]*(k%2));
              return ans;
          }
      };
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2074937.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pytorch深度学习基础 8 (使用PyTorch的内置功能和默认参数来构建和训练一个简单的线性模型)

co 上面几节都是自定义了很多东西&#xff0c;比如模型的权重&#xff0c;偏置的大小&#xff0c;学习率&#xff0c;损失函数等等&#xff0c;但是实际上pytorch有很多内置的函数以及默认的参数可以对我们的模型部分进行替换&#xff0c;效果也是非常好的&#xff0c;今天我们…

客户信任的秘密武器:为什么每个网站都需要SSL证书?

SSL证书&#xff0c;是网络安全的一把钥匙&#xff0c;它不仅能够锁住数据的安全&#xff0c;还能够建立起用户与网站之间的信任桥梁。在这个数字化日益发展的时代&#xff0c;每个网站都需要配备SSL证书&#xff0c;其背后的原因是多方面的&#xff0c;涉及到技术、安全、信任…

一文掌握数据要素、数据资源、数据资产、数字资产、数据管理、数据治理、数字资产入表是什么?以及关系

数据要素、数据资源、数据资产、数字资产、数据管理、数据治理、数字资产入表到底是什么呢&#xff1f;他们之间是什么关系呢&#xff1f; 数据要素是构建块&#xff0c;数据资源是这些构建块的集合&#xff0c;而数据资产则是具有价值的资源。数据管理和数据治理则确保这些数据…

Lesson 87 A car crash

Lesson 87 A car crash 词汇 attendant n. 接待员&#xff0c;随从 构成&#xff1a;attend v. 出席&#xff0c;参加    -ant / -ent 人 例如&#xff1a;student 学生    assistant 助理 相关&#xff1a;attendance n. 出勤率 例句&#xff1a;Conan以前是一个好接待…

【已解决】我可以再docker里面装Nginx,然后再Nginx下装java吗?

我可以再docker里面装Nginx,然后再Nginx下装java吗&#xff1f; Docker 是一个开源的应用容器引擎&#xff0c;它允许开发者打包他们的应用以及应用的运行环境到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。Docker 容器通常…

私域流量池|家政小程序开发,便捷服务新模式

随着时代的进步和需求的日益增长&#xff0c;家政服务行业也迎来了显著的发展提升。随着科技的不断发展&#xff0c;数字化已经成为各行各业的重要趋势。家政小程序因此而应运而生&#xff0c;成为提高家政服务效率的智能化工具。不仅满足了用户对服务的灵活性需求&#xff0c;…

2024年开发者必备的一款服务端组件

最新技术资源&#xff08;建议收藏&#xff09; https://www.grapecity.com.cn/resources/ 前言 在现代工作环境中&#xff0c;信息的处理和管理是至关重要的。表格是一种常见的数据呈现和整理工具&#xff0c;被广泛应用于各行各业。然而&#xff0c;随着技术的不断发展&…

NC设计LRU缓存结构

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 设计LRU(最近…

leetcode215. 数组中的第K个最大元素,小根堆/快排思想

leetcode215. 数组中的第K个最大元素 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。…

vue面试集合

缓存 浏览器缓存和http缓存 浏览器缓存&#xff1a; 1&#xff0c;简单的缓存方式有cookie&#xff0c;localStorage和sessionStorage。 2&#xff0c;vue中keep-alive缓存动态组件&#xff1a; 全部缓存&#xff1a;使用<keep-alive>标签包裹缓存路由&#xff0c;ro…

JAVA电子器件制造行业生产管理系统计算机毕设计算机毕业设计

项目开发意义 目前小型企业基本上是采用人工完成生产及物料的车间计划,由于企业运作是以订单驱动而非计划生产,人工手段无法及时随新订单的到来更新计划,造成计划偏离实际;各个生产单位(车间)各自为战,分别提出物料、设备、专用工具的需求,在整个企业层面上很难较精确地控制物料…

机器学习:集成学习之随机森林

目录 前言 一、集成学习 1.集成学习的含义 2.集成学习的代表 3.集成学习的应用 二、随机森林 1.随机森林的特点 2.随机森林生成步骤 3.随机森林优点 4.随机森林的缺点 三、代码实现 1.完整代码 2.数据预处理 3.创建并训练模型 4.测试模型 总结 前言 随机森林是…

集合及数据结构第十二节(下)————哈希表、字符串常量池和练习题

系列文章目录 集合及数据结构第十二节&#xff08;下&#xff09;————哈希表、字符串常量池和练习题 哈希表、字符串常量池和练习题 哈希表的概念冲突-概念冲突-避免冲突-解决冲突严重时的解决办法冲突严重时的解决办法的实现性能分析和 java 类集的关系Hashmap的使用案…

R8RS标准之重要特性及用法实例(四十)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列…

LDR6500Type-C pd OTGi协议芯片讲解

LDR6500是一款由乐得瑞科技推出的USB-C DRP&#xff08;Dual Role Port&#xff0c;双角色端口&#xff09;接口USB PD&#xff08;Power Delivery&#xff0c;功率传输&#xff09;通信芯片。这款芯片具备一系列先进的功能和特点&#xff0c;特别适合于手机音频转接器、USB Ty…

QT中引入SQLITE3数据库

1、把sqlite3.dll、.h、.lib这三个文件拷贝到工程目录下 2、在pro文件中配置一下即可 LIBS $$PWD/sqlite3.lib 3、保存一下pro文件 4、引入sqlite3.h头文件 5、验证 先新建一个文件夹data&#xff0c;若没有user.db&#xff0c;则会自动新建&#xff1b;有就直接使用 运行成…

UTONMOS:探索未来游戏的元宇宙纪元新篇章

元宇宙游戏&#xff0c;作为融合了虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;、区块链、人工智能&#xff08;AI&#xff09;等前沿技术的综合性数字世界&#xff0c;元宇宙游戏不仅重新定义了游戏的边界&#xff0c;更预示着一个沉浸式、交互性…

YOlOV5入门教程

前言 因项目需求&#xff0c;所以要使用yolo进行操作&#xff0c;现在对yolov5进行教程&#xff0c;代码可以在这下载&#xff1a;https://github.com/ultralytics/yolov5 项目结构 下载完成后可以看到资源如图所示。 1.1.github文件夹 ISSUE_TEMPLATE 目录 这个目录下的文件…

Cesium 展示——绘制水面动态升高

文章目录 需求分析需求 如图,绘制水面动态升高,作为洪水淹没的效果 分析 我们首先需要绘制一个面然后给这个面一个高度,在回调函数中进行动态设置值【这里有两种,一种是到达水面一定高度停止升高,一种是水面重新升高】/*** @description :洪水淹没* @author : Hukang*…