题目描述:
思路:第一种想法就是直接暴力,但是暴力法虽然简单,但是时间限制不能通过。
之后想法是从右向左进行,当左侧元素大于右侧元素时候左侧的list在右侧的list的基础上加一,小于右侧元素时向前找不大于的那个元素,在那个元素的list的基础上+1。运行后发现有问题,当输入[2,0,1]时,输出为[1,0,0],而正确的应该为[2,0,0]。
先附上暴力法的解法:
class Solution {
public List<Integer> countSmaller(int[] nums) {
List<Integer> list=new ArrayList(nums.length);
int count=0;
for(int i=0;i<nums.length;i++){
count=0;
for(int j=i+1;j<nums.length;j++){
if(nums[i]>nums[j]) count++;
}
list.add(count<