菜鳥扣程式碼第十五天:leetcode第1365題--有多少小於當前數字的數字
題目描述:
給你一個陣列 nums,對於其中每個元素 nums[i],請你統計陣列中比它小的所有數字的數目。
換而言之,對於每個 nums[i] 你必須計算出有效的 j 的數量,其中 j 滿足 j != i 且 nums[j] < nums[i] 。
以陣列形式返回答案。
示例 1:
輸入:nums = [8,1,2,2,3]
輸出:[4,0,1,1,3]
解釋:
對於 nums[0]=8 存在四個比它小的數字:(1,2,2 和 3)。
對於 nums[1]=1 不存在比它小的數字。
對於 nums[2]=2 存在一個比它小的數字:(1)。
對於 nums[3]=2 存在一個比它小的數字:(1)。
對於 nums[4]=3 存在三個比它小的數字:(1,2 和 2)。
示例 2:
輸入:nums = [6,5,4,8]
輸出:[2,1,0,3]
示例 3:
輸入:nums = [7,7,7,7]
輸出:[0,0,0,0]
程式碼:
class Solution(object):
def smallerNumbersThanCurrent(self, nums):
res = []
tmp_nums = list(nums)
tmp_nums.sort()
for num in nums:
res.append(tmp_nums.index(num))
return res
測試:
輸入
[2,2,5,8,3,1]
輸出
[1,1,4,5,3,0]
預期結果
[1,1,4,5,3,0]
解題思路:
如果直接將列表中第i個數字挨個與其餘i-1個進行比較,程式碼的效率會比較低,因為輸出的是比第i個數字小的數字的個數,所以很容易想到先將列表中的數字進行排序(升序),然後再輸出比當前數字小的數字的個數,這樣程式碼的效率會比較高。python正好有sort()方法,預設可將列表中的數字正序排序。
相關文章
- LeetCode - 1365 - 有多少小於當前數字的數字LeetCode
- LeetCode1365有多少小於當前數字的數字LeetCode
- Leetcode 刷題 ------1365.有多少小於當前數字的數字LeetCode
- LeetCode刷題進階之有多少小於當前數字的數字(1365)(暴力求解)LeetCode
- LeetCode 力扣 羅馬數字轉整數LeetCode力扣
- js獲取數字中的最小數字程式碼程式碼例項JS
- 利用爬蟲獲取當前博文數量與字數爬蟲
- 菜鳥扣程式碼第九天:leetcode463--島嶼的周長LeetCode
- leetcode13題——羅馬數字轉整數LeetCode
- leetcode力扣136.只出現一次的數字LeetCode力扣
- SSL證書屬於數字證書嗎?數字證書有哪些
- LeetCode878. 第 N 個神奇數字(java)LeetCodeJava
- FTP 數字程式碼的意義FTP
- 菜鳥教學--密碼學概述 (10千字)密碼學
- 力扣-738. 單調遞增的數字力扣
- [每日一題] 第十四題:和為s的兩個數字每日一題
- [每日一題] 第十九題:陣列中重複的數字每日一題陣列
- 一個菜鳥對密碼學的理解 (4千字)密碼學
- 【刷力扣】1342. 將數字變成 0 的操作次數力扣
- 力扣刷題——3007.價值和小於等於 K 的最大數字力扣
- LeetCode 13[羅馬數字轉整數]LeetCode
- 數字產業化是否快於產業數字化LN產業
- PHP非字母數字の程式碼PHP
- 力扣 根據數字二進位制下1的數目排序力扣排序
- 力扣 1342. 將數字變成 0 的操作次數 C++力扣C++
- 函數語言程式設計前菜函數程式設計
- LeetCode 2544[交替數字和]LeetCode
- 菜鳥破解錄之 The Cleaner (4千字)
- 菜鳥破解錄之 DlgXRSizer (4千字)
- 缺失的數字;及找數字分析
- 力扣448. 找到所有陣列中消失的數字力扣陣列
- 字串轉數字的問題字串
- LeetCode:尋找丟失的數字LeetCode
- Nth Digit 第N個數字Git
- leetcode 解題:7. 整數反轉 @ 彈出和推入數字 & 溢位前進行檢查LeetCode
- 當前重壓下的CIO該如何開展數字化建設工作
- js獲取當前月份剩餘的天數程式碼JS
- 對陣列中的數字 1 和 2 進行排序,使得數字 1、2 分別位於前、後部分陣列排序