算法通關村第十五關 | 白銀 | 海量數據場景下的熱門算法題

1.從 40 個億中產生一個不存在的整數

可以采用位圖存儲數據,申請一個 bit 類型的數組 bitArr ,每個位置只表示 0 或者 1 狀態,可以將占用內存縮小為使用哈希表的 1/32 。

遍歷給定的 40 億個數,遇到數時就將 bitArr 相應位置設置為 1 。

遍歷結束后,再遍歷 bitArr ,哪個位置上的值是 0 ,那這個數就不在 40 億個數中。

假如現在只有 10 MB 內存空間可用,就可以考慮使用分塊的方法。通過時間換取空間。

將數據平均分成多個區間,只計算區間內的數據,總有一個區間的數是少于其他區間的平均計數的,那就可以從這個區間里用位圖的方式找到沒出現過的數。

2.用 2GB 內存在 20 億個整數中找到出現次數最多的數

極端情況下這些數可以全部都不相同,那么內存占用會非常大。

使用哈希函數將大文件分為小文件,同一種數是不會被分到不同的小文件上的,就可以得到每個小文件中出現最多的數以及次數統計。

3.從 100 億個 URL 中查找重復項

同樣使用哈希函數將文件拆分,拆分要注意資源限制,要明確將數據分到若干臺機器或者分為若干個文件。

4. 40 億個非負整數中找到出現兩次的數

與第一位相同,使用位圖,但是這次要用兩倍大小的位圖解決問題。

用兩位表示一個數據,初始為 00 ,每次出現都加一,且加到 11 之后不再變動,這樣最后兩位為 10 的位置表示的就是出現了兩次的數。

如果對您有幫助,請點贊關注支持我,謝謝! ?
如有錯誤或者不足之處,敬請指正! ?
個人主頁:星不易 ?
算法通關村專欄:不易|算法通關村 ?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/215364.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/215364.shtml
英文地址,請注明出處:http://en.pswp.cn/news/215364.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

短視頻引流獲客系統:引領未來營銷的新潮流

在這個信息爆炸的時代,短視頻已經成為了人們獲取信息的主要渠道之一。而隨著短視頻的火爆,引流獲客系統也逐漸成為了營銷領域的新寵。本文將詳細介紹短視頻引流獲客系統的開發流程以及涉及到的技術,讓我們一起來看看這個引領未來營銷的新潮流…

華清遠見作業第二十四天

使用消息隊列完成兩個進程之間相互通信 代碼 #include<stdio.h> #include<string.h> #include<stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/ipc.h> #include <sys/msg.h> #in…

k8s一鍵部署uniswap

1、拉取uniswap源碼 github地址 2、編寫Dockerfile并打鏡像 # Set the base image FROM node:18.10.0# WORKDIR /usr/src/app/ WORKDIR /home/gateway# Copy files COPY ./ /home/gateway/# Dockerfile author / maintainer LABEL maintainer"Michael Feng <mikehummi…

Java最全面試題專題---2、Java集合容器(2)

Map接口 說一下 HashMap 的實現原理&#xff1f; HashMap概述&#xff1a; HashMap是基于哈希表的Map接口的非同步實現。此實現提供所有可選的映射操作&#xff0c;并允許使用null值和null鍵。此類不保證映射的順序&#xff0c;特別是它不保證該順序恒久不變。 HashMap的數據…

C語言-枚舉

常量符號化 用符號而不是具體的數字來表示程序中的數字 枚舉 用枚舉而不是定義獨立的const int變量 枚舉是一種用戶定義的數據類型&#xff0c;他用關鍵詞enum以如下語法來聲明&#xff1a; enum枚舉類型名字{名字0&#xff0c;…&#xff0c;名字n}&#xff1b; 枚舉類型名…

外包干了3年,技術退步太明顯了。。。。。

先說一下自己的情況&#xff0c;本科生生&#xff0c;18年通過校招進入武漢某軟件公司&#xff0c;干了差不多3年的功能測試&#xff0c;今年國慶&#xff0c;感覺自己不能夠在這樣下去了&#xff0c;長時間呆在一個舒適的環境會讓一個人墮落!而我已經在一個企業干了四年的功能…

6_CSS布局之浮動的應用

day06_CSS布局之浮動的應用 本課目標&#xff08;Objective&#xff09; 理解什么是浮動掌握浮動的三種機制掌握浮動的案例應用 1 CSS 布局的三種機制 CSS 提供了 3 種機制來設置盒子的擺放位置&#xff0c;分別是普通流&#xff08;標準流&#xff09;、浮動和定位。 普通流…

HarmonyOS開發:回調實現網絡的攔截

前言 基于http封裝的一個網絡庫&#xff0c;里面有一個知識點&#xff0c;在初始化的時候&#xff0c;可以設置請求頭攔截和請求錯誤后的信息的攔截&#xff0c;具體案例如下&#xff1a; et.getInstance().init({netErrorInterceptor: new MyNetErrorInterceptor(), //設置全…

web網絡安全

web安全 一&#xff0c;xss 跨站腳本攻擊(全稱Cross Site Scripting,為和CSS&#xff08;層疊樣式表&#xff09;區分&#xff0c;簡稱為XSS)是指惡意攻擊者在Web頁面中插入惡意javascript代碼&#xff08;也可能包含html代碼&#xff09;&#xff0c;當用戶瀏覽網頁之時&…

關于北京醫學sci論文翻譯

在醫學領域&#xff0c;翻譯論文是一項非常重要的工作。醫學論文的翻譯需要準確、專業、嚴謹&#xff0c;同時也需要考慮到醫學領域的特殊性和復雜性。那么&#xff0c;如何翻譯醫學論文呢&#xff1f;北京醫學SCI論文翻譯哪家好呢&#xff1f; 首先&#xff0c;需要具備專業的…

多目標跟蹤數據集

目錄 DanceTrack數據集 自己改進的可視化代碼: DanceTrack數據集 DanceTrack 是一個大規模的多對象跟蹤數據集。用于在遮擋、頻繁交叉、同樣服裝和多樣化身體姿態條件下對人進行跟蹤。強調運動分析在多對象跟蹤中的重要性。 GitHub地址:https://github.com/DanceTrack/Dan…

python自動化測試實戰 —— 單元測試框架

軟件測試專欄 感興趣可看&#xff1a;軟件測試專欄 自動化測試學習部分源碼 python自動化測試相關知識&#xff1a; 【如何學習Python自動化測試】—— 自動化測試環境搭建 【如何學習python自動化測試】—— 瀏覽器驅動的安裝 以及 如何更…

swing快速入門(五)

注釋很詳細&#xff0c;直接上代碼 上一篇 本篇新增內容&#xff1a; 1.布局管理器BorderLayout 2.自適應尺寸方法pack() import java.awt.*; public class swing_test_3 {public static void main(String[] args) {Frame framenew Frame("演示BorderLayout");//…

第十六屆山東省職業院校技能大賽高職組“應用軟件系統開發”賽項樣題

第十六屆山東省職業院校技能大賽 高職組“應用軟件系統開發”賽項樣題 目錄 一&#xff0e;競賽須知 二&#xff0e;競賽任務標題二 模塊一&#xff1a;系統需求分析&#xff08;25分&#xff09; 模塊二&#xff1a;軟件系統開發&#xff08;55分&#xff09; 模塊三&am…

【APP安卓測試工具】adb(Android Debug Bridge)

1.常見的命令 列出已連接的設備 adb device安裝 adb install <APK文件路徑>卸載 adb uninstall <APK文件路徑>啟動和停止 adb shell am start -n <包名>[/<Activity>]adb shell am force -stop <包名>截屏和錄屏 adb shell screencap <文件路…

cordic 算法學習記錄

參考&#xff1a;b站教學視頻FPGA&#xff1a;Cordic算法介紹與實現_嗶哩嗶哩_bilibili FPGA硬件實現加減法、移位等操作比較簡單&#xff0c;但是實現乘除以及函數計算復雜度高且占用資源多&#xff0c;常見的計算三角函數/平方根的求解方式有①查找表&#xff1a;先把函數對應…

JVM面試連環炮:你準備好迎接挑戰了嗎?

在Java開發領域&#xff0c;JVM面試一直是一個熱門話題。作為一名優秀的開發者&#xff0c;你是否已經準備好迎接這場挑戰了呢&#xff1f;今天&#xff0c;我們就來深度解析一下JVM面試的熱點問題&#xff0c;幫助你更好地應對面試&#xff0c;一舉拿下offer&#xff01; 1、…

Python 使用sphinx生成API文檔

目錄 前言: 項目層級 Python項目docstring規范 Example Google Style Python Docstrings Example NumPy Style Python Docstrings reStructuredText Style 設置代碼docstrings風格(pycharm) 安裝sphinx 創建sphinx文檔項目 配置conf.py文件 編譯代碼為api文檔 編譯…

vim + ctags 跳轉, 查看函數定義

yum install ctags Package ctags-5.8-13.el7.x86_64 already installed and latest version 創建 /home/mzh/pptp-master/tags.sh #!/usr/bin/shWORKDIR/home/mzh/pptp-masterfind ${WORKDIR} -name "*.[c|h]" | xargs ctags -f ${WORKDIR}/tags find /usr/inclu…

final的安全發布

final的安全發布 兩個關鍵字“發布”“安全” 所謂發布通俗一點的理解就是創建一個對象&#xff0c;使這個對象能被當前范圍之外的代碼所使用 比如Object o new Object(); 然后接下來使用對象o 但是對于普通變量的創建&#xff0c;之前分析過&#xff0c;大致分為三個步驟&am…