题目概述

解题思路

题意是:给定一个盒子(用二维矩阵表示),盒子里面每个格子有三种情况:空/有可以移动的石头/有不能移动的障碍。现在把水平放置的盒子竖直摆过来,问盒子里面会发生怎样的变化。

这道题的做法是:单独分析每一行的变化。对于每一行来说,我们从右往左分析逐个格子(表示当前指针所指位置),维护一个变量,记录当前行最靠右边的障碍的位置

  • 如果格子里是障碍,则更新
  • 如果格子里是石头,则将石头移动到的位置。

方法性能

时间复杂度是O(MN):

示例代码

class Solution {
public:vector<vector<char>> rotateTheBox(vector<vector<char>>& box) {int R_len = box.size(),C_len = box[0].size();int cur_pos;for(int ri = 0; ri < R_len;++ri){cur_pos = C_len;for(int ci = C_len - 1; ci >= 0;--ci){//meet wallif(box[ri][ci] == '*')cur_pos = ci;else if(box[ri][ci] == '#') //meet stone{//move stoneif(cur_pos - ci > 1){cur_pos--;box[ri][cur_pos] = '#';box[ri][ci] = '.';}else{cur_pos = ci;}}}}vector<vector<char>> res(C_len, vector<char>(R_len));for(int ri = 0; ri < R_len; ++ri){for(int ci = 0; ci < C_len;++ci){res[ci][R_len - ri - 1] = box[ri][ci];}}return res;}
};

leetcode 1861. Rotating the Box相关推荐

  1. Leetcode 1861. Rotating the Box [Python]

    受限需要设置一个转换函数,把给定的box调转90度.随后基于调转后的newbox来进行操作.从每一列的最后一位往上遍历.设置一个dropto的变量,用于记录石头可以掉下的最低位置,当遇到障碍物时,dr ...

  2. LeetCode 1861. 旋转盒子(前缀和)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个 m x n 的字符矩阵 box ,它表示一个箱子的侧视图.箱子的每一个格子可能为: '#' 表示石头 '*' 表示固定的障碍物 '.' 表示空位 ...

  3. MaxScript 学习笔记【有转载】

    MaxScript 学习笔记[有转载] 1. string string类型的变量是一个数组,下列操作合法: strName = $.name -- output: "Shemmy_03&q ...

  4. LeetCode简单题之检查句子中的数字是否递增

    题目 句子是由若干 token 组成的一个列表,token 间用 单个 空格分隔,句子没有前导或尾随空格.每个 token 要么是一个由数字 0-9 组成的不含前导零的 正整数 ,要么是一个由小写英文 ...

  5. leetcode c程序总提示主函数_帅气中国小哥出“大招”,程序员跳槽面试刷题必备...

    整理 | 一一 出品 | AI科技大本营 春节刚过,年终奖收入囊中,属于工程师们一年一度的跳槽季也来了. 跳槽后薪水翻倍自然爽歪歪,但最怕的是面试翻车,那就悲剧了.可想而知,想要跳槽或者为春招准备的毕 ...

  6. LeetCode Valid Sudoku

    原题链接在这里:https://leetcode.com/problems/valid-sudoku/ 题目: Determine if a Sudoku is valid, according to ...

  7. LeetCode 2042. 检查句子中的数字是否递增

    文章目录 1. 题目 2. 解题 1. 题目 句子是由若干 token 组成的一个列表,token 间用 单个 空格分隔,句子没有前导或尾随空格. 每个 token 要么是一个由数字 0-9 组成的不 ...

  8. LeetCode 1263. 推箱子(BFS+DFS / 自定义哈希set)

    文章目录 1. 题目 2. 解题 2.1 超时解 2.2 BFS + DFS 1. 题目 「推箱子」是一款风靡全球的益智小游戏,玩家需要将箱子推到仓库中的目标位置. 游戏地图用大小为 n * m 的网 ...

  9. LeetCode 1298. 你能从盒子里获得的最大糖果数(BFS)

    文章目录 1. 题目 2. 解题 1. 题目 给你 n 个盒子,每个盒子的格式为 [status, candies, keys, containedBoxes] ,其中: - 状态字 status[i ...

最新文章

  1. Thread类中yield方法
  2. 利用Trigger完成WPF 的动画-渐显
  3. MSP430学习笔记5-利用蜂鸣器演奏音乐
  4. 百度4年前干翻自己,打通Waymo特斯拉路线二脉,赢得全球竞速先机
  5. SmartNIC/DPU — Overview
  6. python视图函数是什么_python项目Django(视图函数)
  7. JVM之盘点家底查看初始默认值和更改值
  8. Shell—grep、sed、awk
  9. ftp ---- 本地用户登录(实例配置1:)
  10. 用PyTorch实现一个卷积神经网络进行图像分类
  11. 24V600mA限流电路的Pspice仿真实例
  12. calculate函数使用方法c语言,使用 CALCULATE 函数
  13. 5款最佳Linux服务器系统推荐
  14. 什么是Bom,常用的bom属性又有哪些?
  15. 使用c++模拟红白机——概论篇(一)
  16. 股价跳水20%,市值缩水1230亿美元?Facebook财报会议告诉你原因
  17. 4.11 51单片机-LCD1602显示屏
  18. PIL gray img /灰度图 转OpenCV格式灰度图
  19. 腾讯手游助手修改共享目录/缓存目录/Temp文件夹路径
  20. Windows中缺少mfc140.dll文件解决方法

热门文章

  1. medoo php 教程,PHP数据库框架Medoo1.6安装教程_后端开发
  2. 英语口语395之每日二十个英语单词
  3. 淘宝联盟超级搜索接口_超级:联盟国
  4. 奔跑的北极熊特效实现——动画animation练习
  5. Optomind Inc.、II-VI Incorporated、MACOM与MultiLane SAL在OFC 2019上携手展示200G QSFP56 AOC
  6. 新手小白如何在线制作流程图?
  7. OpenLDAP安装、配置和管理笔记
  8. 中国联通上半年营收1449.5亿元人民币 同比下降2.78%
  9. 分布式环境下的解决方案——分布式锁
  10. Java 8 新特性-菜鸟教程 (7) -Java 8 Nashorn JavaScript