题目: https://leetcode.com/problems/move-zeroes/
开始自己实现了一个,但需要 20ms ,只能 beats 27.02%。
然后去论坛中看了好几个实现,有些号称能 beats 95% , 但我照着实现、提交后仍然只能 20ms , beats 27.02%。
论坛中的实现、我的实现都和编辑推荐的算法一样。
语言选的是 C++ 。
附我的实现:
class Solution
{
public:
void moveZeroes(vector<int>& nums)
{
int i = 0;
int l = nums.size();
while (nums[i] != 0 && i < l) ++i;
for (int j = i + 1; j < l; ++j)
{
if (nums[j] != 0)
{
nums[i++] = nums[j];
}
}
while(i < l) nums[i++] = 0;
}
};
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.