Every day a Leetcode
题目来源:2833. 距离原点最远的点
解法1:贪心
要使得到达的距离原点最远的点,就看 left 和 right 谁大,将 left 和 right 作为矢量相加,再往同方向加上 underline。
答案即为 abs(left - right) + underline。
代码:
/*
* @lc app=leetcode.cn id=2833 lang=cpp
*
* [2833] 距离原点最远的点
*/
// @lc code=start
class Solution
{
public:
int furthestDistanceFromOrigin(string moves)
{
int left = 0, right = 0, underline = 0;
for (char &c : moves)
{
if (c == 'L')
left++;
else if (c == 'R')
right++;
else
underline++;
}
return abs(left - right) + underline;
}
};
// @lc code=end
结果:
复杂度分析:
时间复杂度:O(n),其中 n 是字符串 moves 的长度。
空间复杂度:O(1)。