二分查找的通用模板
二分查找的概念本身很容易理解,這裏不做贅述。其使用前提只有一個:單調數組 樸素二分查找 當在一個有向數組中,查找數組中是否有某個值,代碼很簡單: const binarySearch = (nums, target) = { let l = 0; let r = nums.length - 1; while(l=r) { const mid = (l+r) 1 if(
昵稱 goblin_pitcher
二分查找的概念本身很容易理解,這裏不做贅述。其使用前提只有一個:單調數組 樸素二分查找 當在一個有向數組中,查找數組中是否有某個值,代碼很簡單: const binarySearch = (nums, target) = { let l = 0; let r = nums.length - 1; while(l=r) { const mid = (l+r) 1 if(
昵稱 goblin_pitcher
前言 解決問題思維方式 假設我們有一整套螺絲刀,要進行筆記本清灰操作,我們主要的思維邏輯如下: 若要清灰,必須先取出風扇 若要取出風扇,必須先把從外殼到風扇的螺絲全部拆下 那麼清灰問題就變成了拆一堆不同規格的螺絲,當我們看到不同規格的螺絲,就會比較螺絲口大小、形狀和螺絲刀規格,從而選取對應的螺絲刀。 可以看出,當我們遇到一個複雜問題,下意識的思維方式就是將一個複雜問題,轉移成我們熟知的一些
昵稱 goblin_pitcher
刷力扣時,遇到關鍵詞:下一個更大/小的數這類題目時,往往會採用單調棧的解法,如每日温度 刷題最常見的問題就是,看到題解,感覺很精妙,但下次遇到一模一樣的題目時,往往知道思路,但寫不出代碼,有或者遇到類似的變體題目時,不會往這方面想。這兩種情況在之前的文章(數據結構算法小結)中提到過,分別有兩方面的原因: 對工具(如單調棧知識點)的特性(適用範圍)不明朗 對工具的原理沒有真正的理解 初學單調
昵稱 goblin_pitcher
前言 提及算法,可能會有很多前端同學覺得這是一個距離自己日常工作較遠的領域,認為算法並沒有那麼重要。事實上,這種看法是片面的,算法不僅僅是計算機科學中的一個重要概念,在前端開發中也有着廣泛的應用和巨大的價值。 一個精心設計的算法可以大幅度提高應用的性能和效率,例如:如何在大量數據中快速找到指定信息、如何高效地處理用户輸入、如何在動畫效果中保持流暢的用户體驗、如何讓頁面加載更快、響應更靈敏等等場景,
昵稱 XPoet
一 認識樹形結構 樹形結構是一種廣泛應用的非線性數據結構,它在計算機科學和日常生活中都有廣泛的應用。比如文件系統,郵件系統,編譯器語法樹,決策樹,網絡通信,甚至機器學習當中,都有樹形數據結構的影子。本文旨在梳理日常用到的各類樹形結構以及其優點和劣勢,讓瀆者對樹形結構有一個深入的認知和了解。下面列舉幾類常見的樹形結構的應用場景。 1.1 文件系統 計算機中用於存儲和管理文件的一種系統,它使用樹形結構
昵稱 用户bPdd2O9
如今,許多公司在招聘過程中越來越重視候選人的算法能力。無論是初創公司還是知名企業,筆試和麪試中幾乎都要經過算法和數據結構的考核。這不僅是為了評估候選人的編程能力,更是為了考查他們解決問題的思維方式。 即使你並不打算進入大公司,掌握算法依舊對你在 IT 行業的長期發展至關重要。算法不僅涉及編碼能力,它們還影響着系統設計、數據處理的效率和優化。隨着項目的複雜性增加,算法知識的重要性將愈加突出。 那麼,
昵稱 思否編程
🧑💻JavaScript數據結構與算法-HowieCong 務必要熟悉JavaScript使用再來學! 數組 在 JavaScript 中,數組是一種特殊的對象,用於存儲多個值的有序集合 1. 數組的創建 // 方括號+元素內容 const arr = [1,2,3] // 構造函數,等價於 const arr = [] const arr = new Array();
昵稱 HowieCong
🧑💻JavaScript數據結構與算法-HowieCong 務必要熟悉JavaScript使用再來學! 一、數組增刪操作 在瞭解棧和隊列前,明確數組中的增刪操作具有什麼樣的特性、對應的方法有哪些: 靈活增刪的數組 數組增加元素的三種方法: unshift方法,添加元素到數組的頭部
昵稱 HowieCong
🧑💻JavaScript數據結構與算法-HowieCong 務必要熟悉JavaScript使用再來學! 一、鏈表的基本形態 鏈表和數組都是有序的列表,都是線性結構(有且僅有一個前驅,有且僅有一個後續);不同點在於,鏈表中,數據單位的名稱叫做“結點”,而結點和結點的分佈,在內存中都是離散的 1. 數組的“連續” 在內存中最為關鍵的一個特徵,就是對應一段位於自身上界和下界之間的,一段連
昵稱 HowieCong
🧑💻JavaScript算法與數據結構-HowieCong 務必要熟悉JavaScript使用再來學! 一、樹是什麼? 數據結構中的樹,對於現實世界中的樹簡化——樹根抽象為“根節點”,樹枝抽象為“邊”,樹枝的兩個端點抽象為“結點”,樹葉抽象為“葉子結點” 計算機中的樹如下: 二、樹的重點 樹的層次計算規則:根結點所在的那一層為第一層,其子節點為第二層,以此類推 結點和樹
昵稱 HowieCong
🧑💻JavaScript算法與數據結構-HowieCong 務必要熟悉JavaScript使用再來學! 一、遍歷的方式 按照順序規則的不同,遍歷方式有如下四種: 先序遍歷 中序遍歷 後序遍歷 層次遍歷 按照實現方式的不同,遍歷方式又可以分為以下兩種: 遞歸遍歷(先,中,後序遍歷) 迭代遍歷(層次遍歷) 二
昵稱 HowieCong
🧑💻JavaScript算法與數據結構-HowieCong 務必要熟悉JavaScript使用再來學! 一、時間複雜度 (1)下面代碼,一共執行了幾次? function traverse(arr){ // 最沒有懸念的是函數裏面的第一行代碼,只會被執行1次 var len = arr.length // 1. i的初始化語句,只有一次,只會被執行1次 //
昵稱 HowieCong
🧑💻JavaScript算法與數據結構-HowieCong 務必要熟悉JavaScript使用再來學! 一、兩數求和——Map 原題: 給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和為目標值的那 兩個 整數,並返回他們的數組下標。你可以假設每種輸入只會對應一個答案。但是,你不能重複利用這個數組中同樣的元素。 示例: 給定 nums = [2, 7, 1
昵稱 HowieCong
🧑💻JavaScript算法與數據結構-HowieCong 務必要熟悉JavaScript使用再來學! 一、鏈表三種方向 鏈表的處理:合併、刪除等(刪除操作畫個記號) 鏈表的反轉及其衍生題目 鏈表成環問題及其衍生題目 二、鏈表的合併 原題: 將兩個有序鏈表合併為一個新的有序鏈表並返回。新鏈表是通過拼接給定的兩個鏈表的所有結點組成的。 示例: 輸入:1-2-4, 1-3-4
昵稱 HowieCong
2025年熱門CRM軟件:10款首選產品 在數字化浪潮的推動下,CRM軟件已成為企業提升客户滿意度和推動增長的關鍵工具。CRM的選擇對業務績效具有至關重要的影響,因此瞭解最新趨勢和市場最佳選擇是每個企業必須重視的工作。本文將為您呈現2025年市場上十大熱門CRM軟件,助您找到最適合的解決方案。 Zoho CRM Zoho CRM憑藉其靈活性和豐富的功能集在全球範圍內廣受歡迎。它提供了
昵稱 下一個絕世
歡迎關注我的公眾號:前端偵探 介紹一個全新的、和用户行為息息相關的屬性:inert。 HTMLElement.inert - Web APIs | MDN (mozilla.org) 有了這個屬性,可以更加輕易地控制很多交互行為,花幾分鐘瞭解一下吧 一、inert 是什麼? inert是 HTMLElement 的一個布爾屬性,意為"惰性",簡單來説,可以禁用一切交互,包括鼠標點擊、選中、拖
昵稱 XboxYan
📦 安裝 npm i dom-vcr 🦄 使用 錄製 2s 生成 4 幀 GIF 需要安裝 gif.js import { createVcr } from 'dom-vcr' import GIF from 'gif.js' const dom = document.querySelector('#app') const vcr = createVcr(dom, { interv
昵稱 weng
瀏覽器(也稱為網絡瀏覽器或互聯網瀏覽器)是安裝在我們設備上的軟件應用程序,使我們能夠訪問萬維網。在閲讀這篇文字時,你實際上正在使用一個瀏覽器。 有許多瀏覽器正在被使用,截至2022年,使用最多的是:谷歌瀏覽器、蘋果的Safari、微軟的Edge和火狐。 但是,它們實際上是如何工作的,從我們在地址欄中鍵入網絡地址開始,到我們試圖訪問的頁面顯示在屏幕上,會發生什麼? 關於這個問題的答案,一個極其簡化的
昵稱 superZidan
js在操作dom的場景中,有時候會有類似的場景需求。 js用前綴名查找class節點 // 參數dom為html dom節點 // 參數key為需模糊查詢的名稱字段 function queryClassNode(dom, key) { let collectArray = []; for (var i = 0; i dom.childNodes.length; i++) {
@tianmiaogongzuoshi_5ca47d59bef41
昵稱 天渺工作室
JavaScript 是世界上最流行的腳本語言。 JavaScript 是屬於 web 的語言,它適用於 PC、筆記本電腦、平板電腦和移動電話。 JavaScript 被設計為向 HTML 頁面增加交互性。 許多 HTML 開發者都不是程序員,但是 JavaScript 卻擁有非常簡單的語法。幾乎每個人都有能力將小的 JavaScript 片段添加到網頁中。下面給大家分享下JavaScript教程
昵稱 編程世界
HTML DOM 簡介 HTML DOM 定義了訪問和操作 HTML 文檔的標準。 什麼是 DOM? DOM 是 W3C(萬維網聯盟)的標準。 DOM 定義了訪問 HTML 和 XML 文檔的標準: "W3C 文檔對象模型 (DOM) 是中立於平台和語言的接口,它允許程序和腳本動態地訪問和更新文檔的內容、結構和樣式。" W3C DOM 標準被分為 3 個不同的部分: • 核心 D
昵稱 阿里雲開發者
本文作者:QHC 前言: 長久以來,傳統前端的工作大多時候在與DOM打交道,近年來,瀏覽器廠商也在不斷努力提高DOM渲染性能,以提高用户體驗。但是更多複雜場景的出現,例如近幾年隨着在線直播、社交娛樂、各種小遊戲的火爆,前端性能的關注度持續提高。特別是遊戲場景,而我們團隊也面臨着一大波h5遊戲化場景,那麼這個系列文章,將帶讀者朋友們一起了解,雲音樂社交直播業務的遊戲化場景解決方案的整體思路與落地案例
昵稱 雲音樂技術團隊
先説結論 dom 節點數量對內存影響沒想象中大,js 變量才是內存佔用的元兇 內存佔用及運行性能對比:原生 js v-for div ≈ v-for 函數式組件 v-for 普通組件 去虛擬 dom 化框架正在崛起,成為一種新的選擇 dom 節點數量對內存影響沒想象中大(十萬 div 僅佔用 400mb) 測試示例 生成 100,000(十萬)個 div,內存佔用僅
昵稱 momo707577045
hello 大家好,我是 superZidan,這篇文章想跟大家聊聊 React 18 如何提升應用性能 這個話題,如果大家遇到任何問題,歡迎 聯繫我 React 18 引入了併發功能,從根本上改變了 React 應用程序的渲染方式。 我們將探討這些最新功能如何影響和提高應用程序的性能 首先,讓我們退一步來了解長任務的基礎知識和相應的性能測量 主線程和長任務 當我們在瀏覽器運行 JavaScrip
昵稱 superZidan