这段代码中的错误是什么?问题说要查找小于当前元素的元素数量


vector<int> smallerNumbersThanCurrent(vector<int>& nums) { 
vector<int> ans;
int k;
if(nums.empty())
{
return ans;
}
for(int i=0;i<nums.size();i++)
{
k=0;
for(int j=i+1;j<nums.size();j++)
{
if(nums[i]>nums[j])
k++;
}
ans.push_back(k);
}
return ans;
}

您的输入[8,1,2,3]

输出[4,0,0,0]

预期[4,0,1,3]

请帮我解释为什么输出不正确的代码。如果我按递减顺序输入,那么输出是正确的。

似乎只将当前元素与数组中之后的剩余值进行比较,而不是将数组中的所有其他元素(即之前的元素(进行比较。因此,向后输出是正确的。顺致敬意,

最新更新