[计数排序]leatcode--1365. 有多少小于当前数字的数字
生活随笔
收集整理的這篇文章主要介紹了
[计数排序]leatcode--1365. 有多少小于当前数字的数字
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目地址:https://leetcode-cn.com/problems/how-many-numbers-are-smaller-than-the-current-number/
這一題可以很巧妙地使用計數排序來求出來;
做題思路:
1.既然是計數排序那要先遍歷一遍數組, 把每個數字出現的次數 記錄在一個新數組里面,下標為數字的大小
例如: 棕色為新建數組
數字每出現一次就加1
2.如果是排序的話,最后我們把計數數組里的數往外一個一個吐出來就可以了。
3.這個題我們不排序也無所謂,它只需要所有比這個數小的數字的個數,也就是剛才的計數數組里,當前位置(表示對應的nums里的一個數n),之前的數(比n小的數字的個數)的總和
class Solution:def smallerNumbersThanCurrent(self, nums: List[int]) -> List[int]:place = [0] * 101 #定義一個計數數組output = [] # 最終輸出的數組for n in nums:place[n] += 1 # 把從0 - 100的所有數的個數都數出來了。lessthan = [] # 把從0 - 100的所有數的比它小的數的個數都列出來。temp = 0 # 其實就是剛才的place數組的累加for p in place:lessthan.append(temp)temp += pfor n in nums: # 最后對應nums把lessthan的值掏出來作為輸出。output.append(lessthan[n])return output總結
以上是生活随笔為你收集整理的[计数排序]leatcode--1365. 有多少小于当前数字的数字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 当铺密码解密脚本--[GKCTF2020
- 下一篇: 汉语拼音+脑洞[BJDCTF 2nd]老