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;
    }
};
相关推荐
Queenie_Charlie1 小时前
和为k的连续区间
数据结构·c++·map
CoderYanger1 小时前
动态规划算法-简单多状态dp问题:16.买卖股票的最佳时机含手续费
开发语言·算法·leetcode·动态规划·1024程序员节
严文文-Chris1 小时前
【半监督学习常见算法】
学习·算法·机器学习
爱学java的ptt1 小时前
206反转链表
数据结构·链表
FPGA_无线通信1 小时前
OFDM 同步设计(3)
算法·fpga开发
SHOJYS2 小时前
离散化+二位前缀和的计数题 [USACO20DEC] Rectangular Pasture S
算法
java修仙传2 小时前
力扣hot100:最大子数组和
数据结构·算法·leetcode
hweiyu002 小时前
数据结构:二叉树
数据结构
想唱rap2 小时前
C++之unordered_set和unordered_map
c++·算法·哈希算法