1769. 移动所有球到每个盒子所需的最小操作数
创始人
2024-03-14 01:38:39
0

题目

n 个盒子。给你一个长度为 n 的二进制字符串 boxes ,其中 boxes[i] 的值为 '0' 表示第 i 个盒子是 的,而 boxes[i] 的值为 '1' 表示盒子里有 一个 小球。

在一步操作中,你可以将 一个 小球从某个盒子移动到一个与之相邻的盒子中。第 i 个盒子和第 j 个盒子相邻需满足 abs(i - j) == 1 。注意,操作执行后,某些盒子中可能会存在不止一个小球。

返回一个长度为 n 的数组 answer ,其中 answer[i] 是将所有小球移动到第 i 个盒子所需的 最小 操作数。

每个 answer[i] 都需要根据盒子的 初始状态 进行计算。

 

示例 1:

输入:boxes = "110"
输出:[1,1,3]
解释:每个盒子对应的最小操作数如下:
1) 第 1 个盒子:将一个小球从第 2 个盒子移动到第 1 个盒子,需要 1 步操作。
2) 第 2 个盒子:将一个小球从第 1 个盒子移动到第 2 个盒子,需要 1 步操作。
3) 第 3 个盒子:将一个小球从第 1 个盒子移动到第 3 个盒子,需要 2 步操作。将一个小球从第 2 个盒子移动到第 3 个盒子,需要 1 步操作。共计 3 步操作。

示例 2:

输入:boxes = "001011"
输出:[11,8,5,4,3,4]

 

提示:

  • n == boxes.length
  • 1 <= n <= 2000
  • boxes[i]'0''1'

分析

就是左右处理一下,规律很明显,在当前下标i下,小于i的往左边移动,大于i的往右边移动。

题解

class Solution {public int[] minOperations(String boxes) {int l = 0,r = 0,len = boxes.length(),rans = 0,lans = 0;for (int i = 1; i < len; ++i) {if (boxes.charAt(i) == '1') {rans += i;r++;}}int[] result = new int[len];for (int i = 0; i < len; ++i) {result[i] = rans + lans;rans -= r;if (boxes.charAt(i) == '1') l++;if (i + 1 < len && boxes.charAt(i + 1) == '1') r--;lans += l;}return result;}
}

相关内容

热门资讯

加强知识产权纠纷仲裁工作 本报讯(记者王金虎)为贯彻落实党中央、国务院关于强化知识产权保护的决策部署,加强知识产权纠纷仲裁工作...
锻造作风建设的制度利器 习近平总书记在2025年第23期《求是》杂志发表的重要文章《推进党的自我革命要做到“五个进一步到位”...
“法律尺度”背后有这样的“教育... 12月23日,民族团结进步促进法草案、国家通用语言文字法修订草案提请十四届全国人大常委会第十九次会议...
金华市修订完善知识产权强市建设... 近期,《金华市人民政府关于深入实施知识产权强市建设的若干意见》(以下简称《意见》)修订完成。12月2...
“地质瑰宝”披上法治“防护衣”... 华声在线12月25日讯(全媒体记者 杨元崇)今天,《湘西世界地质公园保护条例》正式公布。 湘西土家族...
120亿元!安徽真金白银推进学... 记者近日从安徽省财政厅获悉,2025年,省财政共统筹资金120亿元落实各项学生资助政策。财政资金的持...
国家出台首个支持西部陆海新通道... 12月25日,“金融支持加快西部陆海新通道建设有关情况”新闻发布会在北京举行。中国人民银行党委委员、...
广东华企通法律咨询有限公司成立... 天眼查显示,近日,广东华企通法律咨询有限公司成立,法定代表人为彭俊翔,注册资本500万人民币,由盈合...
低空经济持续获政策支持 业绩有... 人民财讯12月26日电,低空经济作为国家战略性新兴产业,持续受到政策支持。 作为万亿级产业,低空经济...
【深圳特区报】从“制度设计图”... 近日,深圳市财政局召开“数据资产全过程管理试点工作培训暨经验交流会”(以下简称“培训交流会”),围绕...