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++;elseunderline++;}return abs(left - right) + underline;}
};
// @lc code=end
结果:
复杂度分析:
时间复杂度:O(n),其中 n 是字符串 moves 的长度。
空间复杂度:O(1)。