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]
请帮我解释为什么输出不正确的代码。如果我按递减顺序输入,那么输出是正确的。
似乎只将当前元素与数组中之后的剩余值进行比较,而不是将数组中的所有其他元素(即之前的元素(进行比较。因此,向后输出是正确的。顺致敬意,