leetcode 2211

2211: 统计道路上的碰撞次数

碰撞次数按下述方式计算:

  • 当两辆移动方向 相反 的车相撞时,碰撞次数加 2
  • 当一辆移动的车和一辆静止的车相撞时,碰撞次数加 1

碰撞发生后,涉及的车辆状态变为'S';首先排除不可能发生碰撞的车:最左侧向左、最右侧向右

在最终状态:

  • 所有 RL[left, right] 区间内都会被"卡住";

  • 它们最终会变成 S (静止),++每辆非 S 的车至少参与一次碰撞;++

1.两辆方向相反的车相撞 +2(非S车辆数目为2)

2.状态为'L'or'R'的车与'S'车相撞 +1(非S车辆数目为1)

->统计有多少非 S 的车即可

复制代码
class Solution {
public:
    int countCollisions(string directions) {
        int n=directions.size();
        int left=0,right=n-1;
        // 跳过左边所有 L,跳过右边所有 R
        while(left<n && directions[left]=='L') left++;
        while(right>=0 && directions[right]=='R') right--;
        if(left>right) return 0;

        int ans=0;
        for(int i=left;i<=right;i++){
            if(directions[i]!='S') ans++;
        }

        return ans;
    }
};
相关推荐
小宋加油啊3 小时前
机械臂抓取物体 PVN3D算法调研学习
学习·算法·3d
lqqjuly3 小时前
前沿算法深度解析(一)
算法
小欣加油3 小时前
leetcode1926 迷宫中离入口最近的出口
数据结构·c++·算法·leetcode·职场和发展
happymaker06266 小时前
LeetCodeHot100——42.接雨水
算法
阿正的梦工坊6 小时前
【Rust】07-错误处理:Option、Result 与 ? 运算符
开发语言·算法·rust
烬羽6 小时前
从零理解树与二叉树:用 JS 带你手撕遍历和递归
javascript·数据结构
YHL7 小时前
🚀从零理解树与二叉树 —— 概念、实现与遍历
前端·javascript·数据结构
JieE2127 小时前
JS 到底有多少种数据类型?从ECMA规范到内存本质,一文彻底搞懂
javascript·数据结构·面试
努力努力再努力wz7 小时前
【内存管理与高并发内存池系列】从 mmap 到 malloc:文件映射、匿名映射与 glibc 内存分配机制详解
linux·c语言·数据结构·数据库·c++·qt·链表