leetcode 2211

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

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

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

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

在最终状态:

  • 所有 R 和 L 在 [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 分钟前
LeetCode2061~2080题目解析
java·leetcode
octopus_c1 小时前
STL 之 string:auto 与范围 for、常用接口、模拟实现与深浅拷贝
开发语言·c++·算法
文丑颜不良啊12 小时前
LeetCode1941~1960题目解析
java·leetcode
老师我太想进步了202616 小时前
【数据结构-4】算法美学之顺序表
数据结构·算法
风影同志7832416 小时前
编码器是激活函数吗?—— 一个看起来很像、其实不是的类比
算法
UIU11416 小时前
P1481 魔族密码
c++·算法·动态规划
文丑颜不良啊17 小时前
LeetCode1961~1980题目解析
java·leetcode
文丑颜不良啊17 小时前
LeetCode2001~2020题目解析
java·leetcode
加宝的起点雷达20 小时前
40 条候选里 38 条来自同一个源,主卡整屏重样
人工智能·算法·创业