有多少小於當前數字的數字

2021-10-25 05:52:35 字數 894 閱讀 8550

2 <= nums.length <= 500

0 <= nums[i] <= 100

方法一:暴力法

class

solution

}return res;}}

;

方法二:快速排序

我們也可以將陣列排序,並記錄每乙個數在原陣列中的位置。對於排序後的陣列中的每乙個數,我們找出其左側第乙個小於它的數,這樣就能夠知道陣列中小於該數的數量。

class

solution

sort

(data.

begin()

,data.

end())

;int prev=-1

;for

(int i=

0;isize()

;i++

)return res;}}

;

方法三:計數排序

注意到陣列元素的值域為 [0,100][0,100][0,100],所以可以考慮建立乙個頻次陣列 cntcntcnt ,cnt[i]cnt[i]cnt[i] 表示數字 iii 出現的次數。那麼對於數字 iii 而言,小於它的數目就為 cnt[0…i−1]cnt[0…i-1]cnt[0…i−1] 的總和。

class

solution

for(

int i=

1;i<=

100;i++

)for

(int i=

0;isize()

;i++

)return res;}}

;

題解出處

有多少小於當前數字的數字

給你乙個陣列 nums,對於其中每個元素 nums i 請你統計陣列中比它小的所有數字的數目。換而言之,對於每個 nums i 你必須計算出有效的 j 的數量,其中 j 滿足 j i 且 nums j nums i 以陣列形式返回答案 第一次解題用的暴力解法 用時 24ms public stati...

有多少小於當前數字的數字

給你乙個陣列 nums,對於其中每個元素 nums i 請你統計陣列中比它小的所有數字的數目。換而言之,對於每個 nums i 你必須計算出有效的 j 的數量,其中 j 滿足 j i 且 nums j nums i 以陣列形式返回答案。示例 1 輸入 nums 8,1,2,2,3 輸出 4,0,1,...

1365 有多少小於當前數字的數字

題目 給你乙個陣列 nums,對於其中每個元素 nums i 請你統計陣列中比它小的所有數字的數目。換而言之,對於每個 nums i 你必須計算出有效的 j 的數量,其中 j 滿足 j i 且 nums j nums i 以陣列形式返回答案。示例 輸入 nums 8,1,2,2,3 輸出 4,0,1...