力扣(LeetCode)1769. 移动所有球到每个盒子所需的最小操作数(C++)
创始人
2024-03-14 03:11:02

暴力循环

直观模拟,对于某个固定的盒子,可以遍历所有盒子,∑\sum∑ 遍历的盒子里的球数 ×\times× 遍历的盒子到固定的盒子的距离,得移动所有球到固定盒子的最小操作数。依次固定所有盒子,遍历,得到答案。

class Solution {
public:vector minOperations(string boxes) {vector ans(boxes.size(),0);for(int i = 0;i
  1. 时间复杂度 : O(n2)O(n^2)O(n2) , 二重遍历的时间复杂度 O(n)O(n)O(n) 。
  2. 空间复杂度 : O(1)O(1)O(1) , 除答案外,只使用常量级空间 。

前缀和

注意到,从当前盒子到下一盒子,相当于下一盒子左侧所有距离 +1+1+1 ,右侧所有距离 −1-1−1 。
开个前缀和数组,保存每个位置左侧的球数(不含当前盒子),那么每个位置右侧的最小球数(含当前盒子)可以用前缀和做差的方式求出。

提示 : 前缀和需要开 n+1n+1n+1 个位置,000 位置左侧没有盒子,前缀和的 000 位置存 000 ,相应的,第 nnn 个位置保存 000 ~ n−1n-1n−1 所有盒子的球数。

class Solution {
public:vector minOperations(string boxes) {int n = boxes.size();vector ans(n,0);int pre[n+1];memset(pre,0,sizeof pre);for(int i = 1;i<=n;i++) pre[i] += pre[i-1] + boxes[i-1]-'0';for(int i = 1;i
  1. 时间复杂度 : O(n)O(n)O(n) , 三次遍历的时间复杂度 O(n)O(n)O(n) 。
  2. 空间复杂度 : O(n)O(n)O(n) , 前缀和数组的空间复杂度 O(n)O(n)O(n) 。

滚动前缀和

一次遍历,维护后缀和变量,算出移动所有球到 000 号盒子的最小操作数。再次遍历,维护前缀和,维护后缀和,利用前一个答案、前缀和、后缀和维护所有答案

class Solution {
public:vector minOperations(string boxes) {int n = boxes.size();int post = 0;vector ans(n,0);for(int i = 1;ipost += boxes[i] - '0';ans[0] += (boxes[i]-'0')*i;}int pre = boxes[0] - '0';for(int i = 1;ians[i] = ans[i-1] + pre - post;pre += boxes[i] - '0';post -= boxes[i] - '0';}return ans;}
};
  1. 时间复杂度 : O(n)O(n)O(n) , 二次遍历的时间复杂度 O(n)O(n)O(n) 。
  2. 空间复杂度 : O(1)O(1)O(1) , 只使用常量级空间 。

AC

AC
AC
AC

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...