国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

《劍指offer》(3)排序算法篇

這篇具有很好參考價值的文章主要介紹了《劍指offer》(3)排序算法篇。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

《劍指offer》(3)排序算法篇,排序算法,python,算法

class Solution:

? ? def duplicate(self , numbers: List[int]) -> int:

? ? ? ? if len(numbers) <= 1:

? ? ? ? ? ? return -1

? ? ? ? import collections

? ? ? ? num_dict = collections.Counter(numbers)

? ? ? ? res = [key for (key,value) in num_dict.items() if value > 1]

? ? ? ? return res[0]

《劍指offer》(3)排序算法篇,排序算法,python,算法

class Solution:

? ? def sort(self,num): #快排

? ? ? ? if len(num) <= 1:

? ? ? ? ? ? return num

? ? ? ? import random

? ? ? ? pivot = random.choice(num)

? ? ? ? left = self.sort([i for i in num if i < pivot])

? ? ? ? right = self.sort([i for i in num if i > pivot])

? ? ? ? same = [i for i in num if i == pivot]

? ? ? ? return left+same+right

? ? def GetLeastNumbers_Solution(self , input: List[int], k: int) -> List[int]:

? ? ? ? if k > len(input) or k == 0: #對數(shù)據(jù)進行錯誤判斷

? ? ? ? ? ? return []

? ? ? ? res = self.sort(input)

? ? ? ? return res[:k]

《劍指offer》(3)排序算法篇,排序算法,python,算法

?#插入排序

class Solution:

? ? def __init__(self) -> None:

? ? ? ? self.res = []

? ? def Insert(self, num): #插入排序

? ? ? ? if len(self.res) == 0:

? ? ? ? ? ? self.res.append(num)

? ? ? ? else:

? ? ? ? ? ? i = 0

? ? ? ? ? ? while i < len(self.res):

? ? ? ? ? ? ? ? if num <= self.res[i]:

? ? ? ? ? ? ? ? ? ? break

? ? ? ? ? ? ? ? i += 1

? ? ? ? ? ? self.res.insert(i,num)

? ? def GetMedian(self):

? ? ? ? n = len(self.res)

? ? ? ? if n % 2 == 0:

? ? ? ? ? ? return (self.res[n//2]+self.res[n//2-1])/2.0

? ? ? ? else:

? ? ? ? ? ? return self.res[n//2]

《劍指offer》(3)排序算法篇,排序算法,python,算法

class Solution:

? ? def merge(self,num): #使用類似于快排的方式

? ? ? ? if len(num) <= 1:

? ? ? ? ? ? return 0

? ? ? ? bigger = []? #比基準(zhǔn)大的數(shù)字

? ? ? ? smaller = [] #比基準(zhǔn)小的數(shù)字

? ? ? ? prev = num[0] #選取第一個數(shù)作為基準(zhǔn)

? ? ? ? res = 0

? ? ? ? for i in num[1:]: #遍歷剩下的數(shù)組

? ? ? ? ? ? if i > prev: #如果大于基準(zhǔn)(不是逆序?qū)Γ?/span>

? ? ? ? ? ? ? ? bigger.append(i) #放到bigger中

? ? ? ? ? ? else: #是逆序?qū)?/span>

? ? ? ? ? ? ? ? smaller.append(i) #放到smaller中,此時對于small中的每一個數(shù),逆序?qū)Χ贾辽俚扔赽igger中的個數(shù)(不考慮smaller內(nèi)部情況)

? ? ? ? ? ? ? ? res += len(bigger) + 1 if num[i] < prev else len(bigger) #如果嚴(yán)格不等值,就得加上基準(zhǔn),否則不加

? ? ? ? return res+self.merge(bigger)+self.merge(smaller) #遞歸去查看bigger和smaller中的情況

? ? def InversePairs(self , nums: List[int]) -> int:

? ? ? ? return self.merge(nums)%1000000007文章來源地址http://www.zghlxwxcb.cn/news/detail-637664.html

到了這里,關(guān)于《劍指offer》(3)排序算法篇的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • (排序) 劍指 Offer 45. 把數(shù)組排成最小的數(shù) ——【Leetcode每日一題】

    (排序) 劍指 Offer 45. 把數(shù)組排成最小的數(shù) ——【Leetcode每日一題】

    難度:中等 輸入一個非負(fù)整數(shù)數(shù)組,把數(shù)組里所有數(shù)字拼接起來排成一個數(shù),打印能拼接出的所有數(shù)字中最小的一個。 示例 1: 輸入: [10,2] 輸出: “102” 示例 2: 輸入: [3,30,34,5,9] 輸出: “3033459” 提示 : 0 nums.length = 100 說明: 輸出結(jié)果可能非常大,所以你需要返回一個字符串而不

    2024年02月10日
    瀏覽(18)
  • (鏈表) 劍指 Offer 25. 合并兩個排序的鏈表 ——【Leetcode每日一題】

    (鏈表) 劍指 Offer 25. 合并兩個排序的鏈表 ——【Leetcode每日一題】

    難度:簡單 輸入兩個遞增排序的鏈表,合并這兩個鏈表并使新鏈表中的節(jié)點仍然是遞增排序的。 示例1: 輸入:1-2-4, 1-3-4 輸出:1-1-2-3-4-4 限制 : 0 = 鏈表長度 = 1000 注意:本題與 21. 合并兩個有序鏈表 相同 ??思路: 法一:遞歸 將該問題可以分解成子鏈表,只比較當(dāng)前 l1 鏈

    2024年02月15日
    瀏覽(21)
  • (排序) 劍指 Offer 51. 數(shù)組中的逆序?qū)?——【Leetcode每日一題】

    (排序) 劍指 Offer 51. 數(shù)組中的逆序?qū)?——【Leetcode每日一題】

    難度:困難 在數(shù)組中的兩個數(shù)字,如果前面一個數(shù)字大于后面的數(shù)字,則這兩個數(shù)字組成一個逆序?qū)?。輸入一個數(shù)組,求出這個數(shù)組中的逆序?qū)Φ目倲?shù)。 示例 1: 輸入: [7,5,6,4] 輸出: 5 限制 : 0 = 數(shù)組長度 = 50000 ??思路:歸并排序 預(yù)備知識 「 歸并排序 」是用 分治 思想,分

    2024年02月11日
    瀏覽(24)
  • (排序) 劍指 Offer 21. 調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)前面 ——【Leetcode每日一題】

    (排序) 劍指 Offer 21. 調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)前面 ——【Leetcode每日一題】

    難度:簡單 輸入一個整數(shù)數(shù)組,實現(xiàn)一個函數(shù)來調(diào)整該數(shù)組中數(shù)字的順序,使得所有奇數(shù)在數(shù)組的前半部分,所有偶數(shù)在數(shù)組的后半部分。 示例: 輸入:nums = [1,2,3,4] 輸出:[1,3,2,4] 注:[3,1,2,4] 也是正確的答案之一。 提示 : 0 = n u m s . l e n g t h = 50000 0 = nums.length = 50000 0 =

    2024年02月12日
    瀏覽(22)
  • 劍指 Offer 56 - II. 數(shù)組中數(shù)字出現(xiàn)的次數(shù) II(位運算 / 哈希表 / 排序)

    鏈接:劍指 Offer 56 - II. 數(shù)組中數(shù)字出現(xiàn)的次數(shù) II 難度:中等 在一個數(shù)組 nums 中除一個數(shù)字只出現(xiàn)一次之外,其他數(shù)字都出現(xiàn)了三次。請找出那個只出現(xiàn)一次的數(shù)字。 示例 1: 輸入:nums = [3,4,3,3] 輸出:4 示例 2: 輸入:nums = [9,1,7,9,7,9,7] 輸出:1 限制: 1 = nums.length = 10000 1

    2024年02月13日
    瀏覽(21)
  • 從零學(xué)算法 (劍指 Offer 13)

    地上有一個m行n列的方格,從坐標(biāo) [0,0] 到坐標(biāo) [m-1,n-1] 。一個機器人從坐標(biāo) [0, 0] 的格子開始移動,它每次可以向左、右、上、下移動一格(不能移動到方格外),也不能進入行坐標(biāo)和列坐標(biāo)的數(shù)位之和大于k的格子。例如,當(dāng)k為18時,機器人能夠進入方格 [35, 37] ,因為3+5+3+

    2024年02月11日
    瀏覽(20)
  • 劍指 offer 動態(tài)規(guī)劃算法題:丑數(shù)

    題目描述 :我們把只包含質(zhì)因子 2、3 和 5 的數(shù)稱作丑數(shù)(Ugly Number)。求按從小到大的順序的第 n 個丑數(shù)。 分析: ????????枚舉法, 從 1 開始判斷遍歷,判斷是否丑數(shù)(只有 2, 3, 5 作為因子),若是丑數(shù) n 自減,直到 n 等于 1,返回即可。 ????????動態(tài)規(guī)劃法,

    2024年02月16日
    瀏覽(21)
  • 從零學(xué)算法(劍指 Offer 45)

    輸入一個非負(fù)整數(shù)數(shù)組,把數(shù)組里所有數(shù)字拼接起來排成一個數(shù),打印能拼接出的所有數(shù)字中最小的一個。 示例 1: 輸入: [10,2] 輸出: “102” 示例 2: 輸入: [3,30,34,5,9] 輸出: “3033459” 我的原始人解法:直接冒泡排序,把最先應(yīng)該拼接的那個數(shù)不斷后移,然后拼接即可。關(guān)鍵就

    2024年02月10日
    瀏覽(17)
  • 《劍指offer》(5)搜索算法、位運算、模擬

    《劍指offer》(5)搜索算法、位運算、模擬

    方法一: class Solution: ? ? def GetNumberOfK(self , nums: List[int], k: int) - int: ? ? ? ? #從兩邊開始找,找到之后記錄當(dāng)前位置 ? ? ? ? left = 0 ? ? ? ? right = len(nums) - 1 ? ? ? ? if k not in nums: ? ? ? ? ? ? return 0 ? ? ? ? start = len(nums) - 1 ? ? ? ? end = 0 ? ? ? ? while left = right: ? ? ?

    2024年02月14日
    瀏覽(21)
  • TypeScript算法題實戰(zhàn)——劍指 Offer篇(6)

    TypeScript算法題實戰(zhàn)——劍指 Offer篇(6)

    一支筆,一雙手,一道力扣(Leetcode)做一宿! 在本文中,我們將使用TypeScript來解決劍指offer的算法題。這些問題涵蓋了各種各樣的主題,包括數(shù)組、字符串、鏈表、樹、排序和搜索等。我們將使用TypeScript的強類型和面向?qū)ο蟮奶匦詠斫鉀Q這些問題,并通過實際的代碼示例來

    2024年02月10日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包