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;
    }
};
相关推荐
情缘晓梦.2 小时前
C语言指针进阶
java·开发语言·算法
北邮刘老师3 小时前
智能体治理:人工智能时代信息化系统的全新挑战与课题
大数据·人工智能·算法·机器学习·智能体互联网
AlenTech4 小时前
155. 最小栈 - 力扣(LeetCode)
算法·leetcode·职场和发展
mit6.8244 小时前
正反两次扫描|单调性cut
算法
Yzzz-F4 小时前
牛客小白月赛127 E
算法
大锦终4 小时前
递归回溯综合练习
c++·算法·深度优先
Keep__Fighting4 小时前
【神经网络的训练策略选取】
人工智能·深度学习·神经网络·算法
晚风吹长发5 小时前
初步了解Linux中的动静态库及其制作和使用
linux·运维·服务器·数据结构·c++·后端·算法
sin_hielo5 小时前
leetcode 3453(二分法)
算法
坚持不懈的大白5 小时前
Leetcode学习笔记
笔记·学习·leetcode