在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

1365.有多少小于當前數(shù)字的數(shù)字

算法與數(shù)據(jù)結構 ? 來源:代碼隨想錄 ? 作者:代碼隨想錄 ? 2022-06-30 09:39 ? 次閱讀

哈希表的神奇應用!

1365.有多少小于當前數(shù)字的數(shù)字

題目鏈接:https://leetcode-cn.com/problems/sort-integers-by-the-number-of-1-bits/

給你一個數(shù)組 nums,對于其中每個元素 nums[i],請你統(tǒng)計數(shù)組中比它小的所有數(shù)字的數(shù)目。

換而言之,對于每個 nums[i]你必須計算出有效的 j 的數(shù)量,其中 j 滿足 j != i 且 nums[j] < nums[i]?。

以數(shù)組形式返回答案。

示例 1:

  • 輸入:nums = [8,1,2,2,3]
  • 輸出:[4,0,1,1,3]
  • 解釋:對于 nums[0]=8 存在四個比它小的數(shù)字:(1,2,2 和 3)。
    對于 nums[1]=1 不存在比它小的數(shù)字。
    對于 nums[2]=2 存在一個比它小的數(shù)字:(1)。
    對于 nums[3]=2 存在一個比它小的數(shù)字:(1)。
    對于 nums[4]=3 存在三個比它小的數(shù)字:(1,2 和 2)。

示例 2:

  • 輸入:nums = [6,5,4,8]
  • 輸出:[2,1,0,3]

示例 3:

  • 輸入:nums = [7,7,7,7]
  • 輸出:[0,0,0,0]

提示:

  • 2 <= nums.length <= 500
  • 0 <= nums[i] <= 100

思路

兩層for循環(huán)暴力查找,時間復雜度明顯為O(n^2)。

那么我們來看一下如何優(yōu)化。

首先要找小于當前數(shù)字的數(shù)字,那么從小到大排序之后,該數(shù)字之前的數(shù)字就都是比它小的了。

所以可以定義一個新數(shù)組,將數(shù)組排個序。

排序之后,其實每一個數(shù)值的下標就代表這前面有幾個比它小的了

代碼如下:

vectorvec=nums;
sort(vec.begin(),vec.end());//從小到大排序之后,元素下標就是小于當前數(shù)字的數(shù)字

用一個哈希表hash(本題可以就用一個數(shù)組)來做數(shù)值和下標的映射。這樣就可以通過數(shù)值快速知道下標(也就是前面有幾個比它小的)。

此時有一個情況,就是數(shù)值相同怎么辦?

例如,數(shù)組:1 2 3 4 4 4 ,第一個數(shù)值4的下標是3,第二個數(shù)值4的下標是4了。

這里就需要一個技巧了,在構造數(shù)組hash的時候,從后向前遍歷,這樣hash里存放的就是相同元素最左面的數(shù)值和下標了。代碼如下:

inthash[101];
for(inti=vec.size()-1;i>=0;i--){//從后向前,記錄vec[i]對應的下標
hash[vec[i]]=i;
}

最后在遍歷原數(shù)組nums,用hash快速找到每一個數(shù)值 對應的 小于這個數(shù)值的個數(shù)。存放在將結果存放在另一個數(shù)組中。

代碼如下:

//此時hash里保存的每一個元素數(shù)值對應的小于這個數(shù)值的個數(shù)
for(inti=0;i

流程如圖:

de6ca87c-f812-11ec-ba43-dac502259ad0.png

關鍵地方講完了,整體C++代碼如下:

classSolution{
public:
vector<int>smallerNumbersThanCurrent(vector<int>&nums){
vector<int>vec=nums;
sort(vec.begin(),vec.end());//從小到大排序之后,元素下標就是小于當前數(shù)字的數(shù)字
inthash[101];
for(inti=vec.size()-1;i>=0;i--){//從后向前,記錄vec[i]對應的下標
hash[vec[i]]=i;
}
//此時hash里保存的每一個元素數(shù)值對應的小于這個數(shù)值的個數(shù)
for(inti=0;ireturnvec;
}
};

可以排序之后加哈希,時間復雜度為O(nlogn)

其他語言版本

Java

publicint[]smallerNumbersThanCurrent(int[]nums){
Mapmap=newHashMap<>();//記錄數(shù)字nums[i]有多少個比它小的數(shù)字
int[]res=Arrays.copyOf(nums,nums.length);
Arrays.sort(res);
for(inti=0;iif(!map.containsKey(res[i])){//遇到了相同的數(shù)字,那么不需要更新該number的情況
map.put(res[i],i);
}
}
for(inti=0;ireturnres;
}

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)值
    +關注

    關注

    0

    文章

    80

    瀏覽量

    14413
  • 數(shù)組
    +關注

    關注

    1

    文章

    417

    瀏覽量

    26034

原文標題:有多少小于當前數(shù)字的數(shù)字?

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數(shù)據(jù)結構】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MASW-004103-1365單片開關英文手冊

    電子發(fā)燒友網站提供《MASW-004103-1365單片開關英文手冊.pdf》資料免費下載
    發(fā)表于 12-03 13:41 ?0次下載

    數(shù)字輸出接口哪些,數(shù)字輸出接口的作用

    數(shù)字輸出接口是電子設備中用于傳輸數(shù)字信號到外部設備的關鍵部分。這些接口種類繁多,各有特點,適用于不同的應用場景。以下是一些常見的數(shù)字輸出接口:
    的頭像 發(fā)表于 10-01 15:55 ?946次閱讀

    高校轉型數(shù)字化的原因哪些

    高校轉型數(shù)字化的原因可以歸結為多個方面,這些原因共同驅動著高等教育機構向數(shù)字化方向邁進。以下是幾個主要的原因: 適應科技發(fā)展趨勢: 隨著信息技術的飛速發(fā)展,數(shù)字化已經成為各行各業(yè)不可逆轉的趨勢。高校
    的頭像 發(fā)表于 09-26 10:39 ?337次閱讀

    數(shù)字振蕩器的特點哪些

    數(shù)字振蕩器是一種電子設備,用于生成周期性的波形,如正弦波、方波、三角波等。它們在電子測試和測量、信號處理、通信和許多其他應用中非常重要。 1. 定義與基本原理 數(shù)字振蕩器是一種利用數(shù)字技術生成周期性
    的頭像 發(fā)表于 09-25 10:41 ?403次閱讀

    數(shù)字振蕩器的實現(xiàn)要求哪些

    數(shù)字振蕩器(也稱為數(shù)控振蕩器,NCO)的實現(xiàn)要求涉及多個方面,主要包括高精度、靈活性、頻率分辨率、相位連續(xù)性以及實現(xiàn)方法的優(yōu)化等。以下是對這些要求的介紹: 1. 高精度 低正交誤差 :在正交數(shù)字
    的頭像 發(fā)表于 09-25 10:34 ?304次閱讀

    什么是數(shù)字孿生?它有哪些優(yōu)勢?

    數(shù)字孿生作為產業(yè)數(shù)字化核心技術之一,正成為當下數(shù)字技術領域的焦點,其商業(yè)模式、應用場景、技術變革、產業(yè)趨勢等正成為當前政產學研用各界關注的熱點。
    的頭像 發(fā)表于 09-19 09:40 ?611次閱讀

    順應數(shù)字化趨勢!Flexus X 實例助力中小企業(yè)開啟數(shù)字轉型“必修課”

    當前,我國數(shù)字經濟已進入快速發(fā)展期。據(jù)國家數(shù)據(jù)局發(fā)布的《數(shù)字中國發(fā)展報告(2023 年)》顯示,2023 年數(shù)字經濟核心產業(yè)增加值估計超過 12 萬億元,占 GDP 比重 10%左右,
    的頭像 發(fā)表于 09-11 11:33 ?283次閱讀
    順應<b class='flag-5'>數(shù)字</b>化趨勢!Flexus X 實例助力中小企業(yè)開啟<b class='flag-5'>數(shù)字</b>轉型“必修課”

    LV1365-EX條碼識別模組在手持終端類中的應用

    在當今數(shù)字化轉型的浪潮中,高效、精準的數(shù)據(jù)采集成為各行業(yè)提升運營效率的關鍵。LV1365-EX條碼識別模組,憑借其卓越的性能和強大的條碼識別能力,在手持終端設備中展現(xiàn)出了非凡的應用潛力,成為物流
    的頭像 發(fā)表于 09-09 14:24 ?224次閱讀
    LV<b class='flag-5'>1365</b>-EX條碼識別模組在手持終端類中的應用

    數(shù)字示波器的測量方法哪三種

    數(shù)字示波器是一種廣泛應用于電子測量領域的儀器,它能夠實時顯示電壓波形,幫助工程師和技術人員對電子信號進行分析和測量。數(shù)字示波器的測量方法很多種,不同的測量方法適用于不同的應用場景。以下是三種常見
    的頭像 發(fā)表于 07-17 18:02 ?1993次閱讀

    數(shù)字電源控制芯片哪些型號

    數(shù)字電源控制芯片是一類用于實現(xiàn)電源管理的集成電路,廣泛應用于各種電子設備中。它們具有高效率、低功耗、高可靠性等優(yōu)點,可以有效地提高電源系統(tǒng)的穩(wěn)定性和性能。 數(shù)字電源控制芯片的分類 數(shù)字電源控制芯片
    的頭像 發(fā)表于 07-08 11:25 ?1638次閱讀

    數(shù)字設備中采集數(shù)字圖像的兩種方法是什么

    數(shù)字設備中,采集數(shù)字圖像的方法很多種,但最常見的兩種方法是:1) 使用數(shù)字相機拍攝,2) 通過掃描儀掃描。 一、使用數(shù)字相機拍攝
    的頭像 發(fā)表于 05-31 15:48 ?961次閱讀

    數(shù)字信號采集系統(tǒng)哪些功能

    數(shù)字信號采集系統(tǒng)(Digital Signal Acquisition System)是一種用于采集、處理和分析模擬信號的電子設備。它廣泛應用于各種領域,如通信、醫(yī)療、工業(yè)自動化、科研等。本文將詳細
    的頭像 發(fā)表于 05-31 14:26 ?1205次閱讀

    數(shù)字信號采集的基本原理哪些

    引言 數(shù)字信號采集技術是將模擬信號轉換為數(shù)字信號的過程,廣泛應用于通信、音頻處理、視頻處理、醫(yī)療設備等領域。數(shù)字信號采集技術的核心是將連續(xù)的模擬信號轉換為離散的數(shù)字信號,以便進行
    的頭像 發(fā)表于 05-31 14:19 ?1675次閱讀

    數(shù)字示波器的優(yōu)缺點哪些

    數(shù)字示波器在電子測量領域具有顯著的優(yōu)勢,同時也存在一些局限性。
    的頭像 發(fā)表于 05-09 17:26 ?1050次閱讀

    數(shù)字化轉型的“奇點”演進

    當前數(shù)字化轉型已成為不可逆轉的趨勢,每一個工業(yè)企業(yè)都應該學習、思考和實踐企業(yè)的數(shù)字化,這不僅僅是當前復雜市場格局的需要,也是未來企業(yè)長期發(fā)展、基業(yè)長青的基礎。 ? 而思考
    的頭像 發(fā)表于 02-18 14:04 ?388次閱讀
    主站蜘蛛池模板: 亚洲美女高清一区二区三区 | 国内精品视频 | 免费看美女毛片 | 亚洲深夜在线 | 国产美女精品视频免费观看 | 黄视频网站免费观看 | 婷婷综合久久 | 在线观看成人网 | 人人射人人 | 天天噜噜日日噜噜久久综合网 | 小说老卫陈红张敏陈法蓉 | 亚洲 欧美 成人 | www亚洲一区| 亚洲精品亚洲人成毛片不卡 | 一区二区三区电影 | 成人网在线看 | 1区2区3区4区 | 四虎美女 | 亚洲免费视频一区 | 啪啪午夜免费 | 黄 色 片免费观看 | 乱j伦小说在线阅读 | 日本免费大黄在线观看 | 白嫩美女一级高清毛片免费看 | 久久综合久色欧美婷婷 | 狠狠干激情 | 综合网激情五月 | 欧美系列在线观看 | 天天干天天拍天天射天天添天天爱 | 色中色综合 | 日本不卡在线一区二区三区视频 | 久久免费手机视频 | 97午夜精品| 男人j桶进女人j的视频 | 最近高清免费观看视频大全 | 一级免费看 | 久操久操久操 | 一级做a爰片久久毛片人呢 一级做a爰片久久毛片图片 | 九月婷婷亚洲综合在线 | 久久成人精品免费播放 | 国产精品视频网站你懂得 |