鍚勪綅鍕囨暍鐨勫皬浼欎即浠ぇ瀹跺ソ锛屾垜鏄皬鍚达紝浣犱滑鍙d腑鐨勭帇鑰咃紝韬綋鍋ュ悍銆傛垜鏈変赴瀵岀殑鑴卞彂鎶€宸э紝鍙互璁╀綘鎴戞垚涓鸿祫娣卞悕浜恒€傝兘涓€瑙佸嵆鍐欐槸鎴戠殑涓昏鐩殑銆傛寫鍓旀槸鎴戠殑鐗圭偣銆傛垜鐨勮唉閫婁腑閫忕潃涓€涓濆潥闊с€傛剼浜烘湁鎰氱锛屾槸鎴戞渶澶х殑瀹夋叞銆傛杩庢潵鍒板皬姝︾畻娉曠郴鍒楃殑鏍堝拰闃熷垪銆傚墠瑷€鏈郴鍒楁枃绔犱互銆婄畻娉曞浘瑙c€嬪拰銆婂涔燡avaScript绠楁硶銆嬩袱鏈功涓烘牳蹇冿紝鍏朵綑鏉愭枡鐢变綔鑰呮剼瑙佽ˉ鍏呫€傚姏姹傜敤閫氫織鏄撴噦鐨勮瑷€甯︿綘棰嗙暐杩欎釜绠楁硶涓栫晫鐨勫ゥ濡欍€傝繖绡囨枃绔犳槸鍏充簬鏍堝拰闃熷垪鐨勩€傜瑪鑰呭皢甯﹂澶у浠庡叾瀹炵幇鐨刯s妯℃嫙鍏ユ墜锛屾帰绱㈡爤鍜岄槦鍒楀湪瀹為檯鍦烘櫙涓殑搴旂敤銆傜▼搴忚皟鐢ㄦ爤鍜屼换鍔¢槦鍒楃殑绌挎彃璁茶В锛屼究浜庣悊瑙g▼搴忔墽琛屻€侀€掑綊銆佸紓姝ヨ皟鐢ㄧ瓑銆傛渶鍚庨檮涓婂嚑涓範棰橈紝鍔犳繁鐞嗚В锛屽珐鍥烘墍瀛︾煡璇嗐€傛爤鐨勭壒鐐瑰強瀹炵幇馃懞鐗圭偣锛?鍚庤繘鍏堝嚭>馃憞涓嬪浘涓殑缇芥瘺鐞冪鏄鏍堢殑褰㈣薄姣斿柣馃懞鍒涘缓鏍堭煈囨帴涓嬫潵鎴戜滑鐢╦s妯℃嫙涓€涓爤锛屽湪鍏朵腑娣诲姞濡備笅鏂规硶:push(element(s)):鍏ユ爤->鍚戞爤椤舵坊鍔犱竴涓?澶氫釜鍏冪礌pop():鍑烘爤->鍙栧嚭鏍堥《鍏冪礌锛屽苟杩斿洖鍙栧嚭鐨勫厓绱爌eek()锛氳繑鍥炴爤椤跺厓绱爄sEmpty()锛氭爤鏄惁瀛樺湪鍏冪礌clear()锛氱Щ闄ゆ爤涓墍鏈夊厓绱爏ize()锛氭爤涓厓绱犱釜鏁板簲鐢細鍗佽繘鍒惰浆浜岃繘鍒娥煠旀€濊矾锛氣潛濡備綍灏嗗崄杩涘埗杞簩杩涘埗<闄?锛屽€掑簭鎺掑垪>锛氬皢鍗佽繘鍒舵暟涓?杩涜绱姞闄ゆ硶杩愮畻锛屽彇浣欏悗灏嗕綑鏁板€掑簭鎺掑垪锛屽緱鍒扮殑缁撴灉灏辨槸浜岃繘鍒舵暟鐨勬暟閲忋€備笂闈㈢殑鍒嗘瀽琛ㄦ槑锛岃繖鏄竴涓吀鍨嬬殑鍚庤繘鍏堝嚭鍦烘櫙锛屽嵆鏍堝満鏅€備唬鐮佸涓嬶細importStackfrom'stack';exportconstbinaryConversion=(num:number)=>{conststack=newStack();璁゜inaryStr='';while(num>0){stack.push(num%2);num=Math.floor(num/2);}while(!stack.isEmpty()){binaryStr+=stack.pop();}returnbinaryStr;}//input10->output:'1010'馃懞鎵╁睍锛氬崄杩涘埗杞叾浠栧崄鍏繘鍒舵€濊矾鍒嗘瀽锛氭垜浠鍔犱竴涓緭鍏ュ弬鏁癰ase鏉ヨ〃绀哄熀鍒讹紱浜岃繘鍒朵綑鏁?锝?锛屽叓杩涘埗浣欐暟0锝?锛屽崄鍏繘鍒朵綑鏁?锝?5锛屽瓧姣嶈〃绀?锝?锛孉锝濬銆傪煈夊彧闇€娣诲姞涓€缁勬暟瀛楁槧灏勶紝灏卞ぇ鍔熷憡鎴愪簡锛佷粠鈥滃爢鏍堚€濆鍏ュ爢鏍堬紱瀵煎嚭constbinaryConversion=(num:number,base:number)=>{conststack=newStack();letbinaryStr='';+letbaseMap='0123456789ABCDEF';while(num>0){-stack.push(num%2);-num=Math.floor(num/2);+stack.push(num%base);+num=Math.floor(num/base);}while(!stack.isEmpty()){-binaryStr+=stack.pop();+binaryStr+=baseMap[stack.pop()asnumber];}returnbinaryStr;}//binaryConversion(100345,2)->1100001111111001//binaryConversion(100345,8)->303771//binaryConversion(100345,16)->187F9鍑芥暟璋冪敤鏍堚€斺€旂悊瑙i€掑綊鐨勯噸瑕佺鍣╮ecursion锛屽ぇ瀹惰偗瀹氫細璇达紝鎴戠煡閬撹繖涓紝涓嶅氨鏄嚜宸变笉鏂惊鐜殑杩囩▼鍚楋紵浣嗘槸浣犵湡鐨勪簡瑙i€掑綊鍚楋紵蹇€熸帓搴忋€佸悎骞躲€佹爲閬嶅巻鏄惁鍙互杞绘澗鎺у埗锛熷鏋滀笉鏄紝鍒欓€掑綊杩樻病鏈夊畬鍏ㄧ悊瑙o紝鍗冲嚱鏁扮殑鎵ц椤哄簭杩樻病鏈夊畬鍏ㄧ悊瑙c€傝鎴戜滑鐪嬬湅涓嬮潰鐨勫嚱鏁帮細constgreet=(name)=>{console.log(`hello,${name}!`);鏂伴棶鍊欒锛堝鍚嶏級锛沜onsole.log('鍑嗗璇村啀瑙?..');鍐嶈锛堬級;}constnewGreet=(name)=>{console.log(`浣犲ソ鍚楋紝${name}?`);}constbye=()=>{console.log('濂界殑锛屽啀瑙侊紒');}greet('灏忔');瀹冪殑鎵ц杩囩▼鏄€庢牱鐨勶紵涓€璧锋潵鐪嬬湅鍚ю煈囧啓涓畝鍗曠殑閫掑綊姹?鐨勯樁涔?$5!$)constfact=num=>{if(num===1)return1;杩斿洖num*fact(num-1);}fact(5);缈犺姳锛屼笂闈㈢殑鎵ц鍥攫煈烘墿灞曪細鎵ц涓婁笅鏂囧垎涓衡€滃叏灞€鎵ц涓婁笅鏂団€濆拰鈥滃嚱鏁版墽琛屼笂涓嬫枃鈥濄€傚湪寮€濮嬫墽琛屼换浣曚唬鐮佷箣鍓嶏紝JavaScript浼氬垱寤轰竴涓叏灞€涓婁笅鏂囧苟灏嗗叾鍘嬪叆鏍堝簳锛屽嵆window瀵硅薄锛涙瘡褰撴垜浠皟鐢ㄤ竴涓嚱鏁版椂锛岄兘浼氬垱寤轰竴涓柊鐨勫嚱鏁版墽琛屼笂涓嬫枃锛屽涓婇潰鐨勬祦绋嬪浘鎵€绀猴紱鏁翠釜JavaScript鎵ц杩囩▼灏辨槸涓€涓€滆皟鐢ㄦ爤鈥濄€傞槦鍒楃壒鐐瑰強瀹炵幇馃懞鐗圭偣锛?FIFO>馃憞鍏堝埌鍏堝緱鏄槦鍒楀舰璞$殑姣斿柣馃懞鍒涘缓闃熷垪馃憞鎺ヤ笅鏉ユ垜浠敤js妯℃嫙涓€涓槦鍒楋紝鍦ㄥ叾涓坊鍔犲涓嬫柟娉曪細enqueue(element(s)):Enqueue->娣诲姞涓€涓?澶氫釜鍏冪礌鍒伴槦灏綿equeue():Dequeue->绉婚櫎闃熼鍏冪礌锛屽苟杩斿洖绉婚櫎鐨勫厓绱爌eek():杩斿洖闃熼鍏冪礌teamisEmpty()锛氶槦鍒楁槸鍚﹀瓨鍦ㄥ厓绱爏ize()锛氶槦鍒椾腑鍏冪礌涓暟鐨勪紭鍏堢骇鍦ㄧ幇瀹炵敓娲讳腑锛屽苟涓嶆€绘槸閬靛惊鍏堟潵鍏堟湇鍔$殑鍘熷垯锛涗緥濡傦紝鍦ㄥ尰闄㈤噷锛屽尰鐢熶細浼樺厛鐓ч【鐥呮儏杈冮噸鐨勭梾浜猴紱杩欏氨寮曞嚭浜嗛槦鍒楃殑绗竴涓彉浣撯€斺€斾紭鍏堥槦鍒楋紱浼樺厛闃熷垪鈥斺€旀彃鍏ユ暟鎹椂锛屾牴鎹暟鎹殑鏉冮噸灏嗘暟鎹彃鍏ュ埌姝g‘鐨勪綅缃€傪煈轰唬鐮佸垎鏋愬鍔犱簡涓€涓唬琛ㄦ潈閲嶇殑杈撳叆鍙傛暟鏉ョ‘瀹氭彃鍏ヤ綅缃€傞噸鍐檈nqueue鏂规硶锛屼娇鍏跺彲浠ユ牴鎹潈閲嶆彃鍏ユ纭殑浣嶇疆銆傚皢Queue绫讳腑鐨刾rivate鏀规垚protected锛岃繖鏍风户鎵跨被灏卞彲浠ラ噸鍐檈nqueue鏂规硶浜嗐€傚綋闃熷垪涓虹┖鏃讹紝褰撳厓绱犻槦鍒椾笉涓虹┖鏃剁洿鎺ュ叆鏍堬紝鍒ゆ柇鍏冪礌鐨勬彃鍏ヤ綅缃紝濡傛灉鏄槦灏惧垯鐩存帴鍏ユ爤锛屽惁鍒欎娇鐢ㄦ嫾鎺ユ彃鍏ヰ煈轰唬鐮佸疄鐜板惊鐜槦鍒椼€嬪嚮榧撲紶鑺扁€濊鐨勬槸涓€绉嶆父鎴忚鍒欙紝浜轰滑鍦ㄥ嚮榧撳0涓紶鑺憋紝褰撻紦澹板仠姝㈡椂锛岃皝寰楀埌鑺憋紝璋佸氨琚窐姹帮紝鐩村埌鍙墿涓嬩竴涓€滆耽瀹垛€濄€傝繖涓父鎴忔€绘槸鍦ㄤ竴涓惊鐜腑锛岃繖瀵艰嚧闃熷垪鐨勭浜岀鍙樹綋鈥斺€斿惊鐜槦鍒椼€傛垜浠鍒掓瘡涓惊鐜窐姹颁竴涓汉n娆★紝n涓哄叆鍙c€傪煈轰唬鐮佸垎鏋愭槸濡備綍寰幆鐨勶紵褰撻槦鍒楀ぇ浜?鏃讹紝寮€濮嬪惊鐜紝鐩村埌鍙墿涓嬩竴涓紝鍗充负璧㈠馃懞浠g爜瀹炵幇JavaScript浠诲姟闃熷垪涔︽帴涓婃枃锛屾垜浠浜嗙▼搴忚皟鐢ㄦ爤锛岀▼搴忎笉浼氳鍚屾鎵ц銆傚綋瀹冩墽琛屽紓姝ユ搷浣滄椂浼氬彂鐢熶粈涔堬紵馃鎬濊€冿細鉂撲负浠€涔?setTimeout(()=>{executionfunction},0)$娌℃湁绔嬪嵆鎵ц銆愬浘鐗囨潵婧?JavaScriptEventLoop鏈哄埗璇﹁В鍙婂湪Vue.js涓殑瀹為檯搴旂敤銆戠▼搴忛『搴忔墽琛岋紝渚濇鍘嬪叆鏍堜腑锛涘綋寮傛浠诲姟鍒版潵鏃讹紝灏嗗叾鎺ㄥ叆浠诲姟闃熷垪锛涚▼搴忔爤娓呯┖鍚庯紝璇诲彇浠诲姟闃熷垪锛屽垎鍒叆鏍堬紱杩欐牱涓€涓噸澶嶇殑杩囩▼灏辨槸EventLoop鈥斺€斾簨浠跺惊鐜€傪煢呰繖閲屾帹鑽愪竴绡囪瑙S鎵ц鏈哄埗鐨勬枃绔犮€傝繖涓€娆★紝鎴戝皢褰诲簳浜嗚ВJavaScript鐨勬墽琛屾満鍒躲€備互涓嬮棶棰樺潎鏉ヨ嚜LeetCode銆備綔鑰呬細涓烘瘡閬撻鎻愪緵瑙i鎬濊矾锛涜繖涓兂娉曠粷涓嶆槸鏈€濂界殑锛屾杩庤鑰呯Н鏋佹€濊€冿紝鐣欎笅鑷繁鐨勭嫭鍒拌瑙c€侺eetCode232.浣跨敤鏍堝疄鐜伴槦鍒楌煈洪鐩弿杩拌鍙娇鐢ㄤ袱涓爤瀹炵幇鍏堣繘鍏堝嚭闃熷垪銆傞槦鍒楀簲璇ユ敮鎸佷竴鑸槦鍒楁敮鎸佺殑鎵€鏈夋搷浣滐紙enqueue銆乨equeue銆乸eek銆乻ize銆乮sEmpty锛夛紱浣犲彧鑳戒娇鐢ㄦ爣鍑嗙殑鍫嗘爤鎿嶄綔~涔熷氨鏄锛屽彧鏈塸ush銆乸op銆乸eek銆乻ize鍜宨sEmpty鎿嶄綔鏄悎娉曠殑銆傪煈洪鐩垎鏋愭爤瀹炵幇闃熷垪鏈変袱涓€濊€冩柟鍚戯紝浠庢爤鍏ユ墜鍜屼粠鏍堝叆鎵嬨€傜瑪鑰呴€夋嫨浠庢爤寮€濮嬶紱鏍稿績鎬濇兂鏄浣曡鍏堝叆鏍堢殑鍏冪礌鍦ㄦ爤搴曪紝鍏堝叆鏍堢殑鍏冪礌鍦ㄦ爤椤讹紱浣跨敤杈呭姪鏍堝€掑簭妯℃嫙闃熷垪锛岃繃绋嬪涓嬸煈囸煈轰唬鐮佸疄鐜癱lassQueue{privateitems=newStack();enqueue(item:T){if(this.items.isEmpty()){this.items.push(item);杩斿洖;}const_stack=newStack();while(!this.items.isEmpty()){_stack.push(this.items.pop()asT);}_stack.push(椤圭洰);while(!_stack.isEmpty()){this.items.push(_stack.pop()asT);}}//鍏朵粬鏂规硶涓嶅彉}LeetCode225.鐢ㄩ槦鍒楀疄鐜颁竴涓爤馃懞棰樼洰鎻忚堪璇峰彧鐢ㄤ袱涓槦鍒楀疄鐜颁竴涓悗杩涘厛鍑猴紙LIFO锛夌殑鏍堬紝骞舵敮鎸佷竴涓櫘閫氭爤鐨勬墍鏈夋搷浣滐紙鎺ㄩ€併€佸脊鍑恒€佹煡鐪嬨€佸ぇ灏忋€乮sEmpty锛夛紱浣犲彧闇€瑕佷娇鐢ㄩ槦鍒楃殑鍩烘湰鎿嶄綔鍗冲彲~鍗砮nqueue銆乨equeue銆乸eek銆乻ize鍜宨sEmpty杩欎簺鎿嶄綔銆傪煈洪鐩垎鏋怮ueue瀹炵幇鏍堬紝涔熸湁涓や釜鎬濊€冩柟鍚戯紝浠庡叆闃熷紑濮嬪拰浠庡嚭闃熷紑濮嬶紝绗旇€呴€夋嫨浠庡叆闃熷紑濮嬶紱鏍稿績鎬濇兂鏄浣曡鏈€鍚庡叆闃熺殑鍏冪礌鍦ㄩ槦澶达紝鑰屽厛鍏ラ槦鐨勫厓绱犲湪闃熷熬锛涙瘡娆″悜闃熷垪涓姞鍏ヤ竴涓柊鍏冪礌鏃讹紝闃熷垪涓殑鍏朵粬鍏冪礌鍙互鍏堝嚭闃燂紝鐒跺悗鍐嶅叆闃熴€傛祦绋嬪涓嬸煈囸煈轰唬鐮佸疄鐜癱lassStack{privateitems=newQueue();鎺ㄩ€侊紙椤圭洰锛歍锛墈this.items.enqueue锛堥」鐩級;for(leti=1;i{conststack=newStack();conststrMap={')':'(',']':'[','}':'{',};for(letiofstr){if(['(','[','{'].includes(i)){stack.push(i);}if(strMap[i]){if(strMap[i]===stack.peek()){stack.pop();}else{returnfalse;}}}returnstack.size()===0;}LeetCode32.鏈€闀挎湁鏁堟嫭鍙佛煈洪鐩弿杩梆煈洪鐩垎鏋愭湰棰樼洰鏄笂涓€棰樼殑寤朵几锛屼粠涓婁竴棰樼殑鍒嗘瀽鏉ョ湅锛屽彲浠ョ湅鍑鸿繖閬撻搴旇缁х画鐢ㄦ爤锛涒潛鐒跺悗鎬庝箞姹傞暱搴︷煠斿拰鏁板嬀璧锋潵鐨勮瘽灏辩敤鏁扮粍鐨勪笅鏍囷紝涓嬫爣鐨勫樊灏辨槸闀垮害銆備粠涓婂浘鍙互鐪嬪嚭锛岄暱搴︽槸鍑烘爤绱㈠紩鍑忓幓鏍堥《鍊硷紱瀹為檯杩愯鏃讹紝鍙虫嫭鍙峰苟娌℃湁鍏ユ爤锛屾墍浠ヨ褰曚竴涓簳鍊硷紱if濡傛灉鏍堜负绌猴紝鍒欏噺鍘籦ottom锛屽鏋滄爤涓嶄负绌猴紝鍒欏噺鍘绘爤椤剁殑鍊拣煈轰唬鐮佸疄鐜癱onstlongestValidParentheses=(str:string)=>{conststack=newStack();璁﹎axLen=0;璁╁簳閮細鏁板瓧|鏈畾涔?鏈畾涔夛紱for(leti=0;imaxLen)maxLen=len;}}returnmaxLen;}LeetCode239.鏈€澶ф粦鍔ㄧ獥鍙p煈洪鐩弿杩梆煈洪鐩垎鏋愪箥涓€鐪嬶紝闂鏉ヤ簡锛岃繖涓嶅氨鏄竴涓琛岄槦鍒楀悧锛?[1,3,-1,-3,5,3,6,7]鎵ц椤哄簭濡備笅馃憞浜庢槸浣滆€呭疄鐜颁簡濡備笅浠g爜锛歝onstmaxSlidingWindow=(nums:number[],k:number)=>{璁╅槦鍒?number[]=[];璁﹎axArr:number[]=[];nums.forEach(item=>{if(queue.length<=k){queue.push(item);}if(queue.length===k){max=queue[0];for(leti=1锛涙垜<闃熷垪闀垮害锛涙垜++锛墈濡傛灉锛堥槦鍒梉i]>鏈€澶э級鏈€澶?闃熷垪[i]锛泒maxArr.push(max);闃熷垪.shift();}})returnmaxArr;}褰撴垜鍏磋嚧鍕冨媰鍦版彁浜ゅ埌LeetCode鏃讹紝鎴戜滑鍙ソ缁х画浼樺寲锛岀湅鐪嬪浣曢檷浣庡懆鏈燂紱瑙傚療涓婂浘锛屾垜浠彂鐜扮獥鍙d腑鏈€澶у€煎乏杈圭殑鏁版槸娌℃湁鎰忎箟鐨勶紝鎴戜滑涓嶇敤绠″畠锛屾垜浠彲浠equeue瀹冿紝杩欐牱绐楀彛涓殑鏈€澶у€兼渶鍏坱eam鐨勫厓绱?鉂揟eam绗竴涓厓绱犱粈涔堟椂鍊欏嚭闃燄煠旀妸绱㈠紩鍊煎瓨鍏ラ槦鍒楀氨濂戒簡銆傚綋鍓嶅厓绱犵储寮曚笌闃熷垪绗竴涓厓绱犱箣闂寸殑宸紓涓庣獥鍙eぇ灏忚繘琛屾瘮杈冦€傚鏋滃ぇ浜庣獥鍙eぇ灏忥紝鍒欓槦鍒楃殑绗竴涓厓绱犱笉鍐嶅湪杩欎釜绐楀彛涓紝闃熷垪灏变細鍑洪槦馃懞浠g爜瀹炵幇鐨勬湰璐ㄦ槸涓€涓弻绔槦鍒椼€傛墿灞曟垜浠殑Queue绫伙紝澧炲姞pop鍜宼ail涓や釜鏂规硶锛屼唬琛ㄤ粠闃熷垪灏鹃儴鍙栧嚭鍏冪礌锛岃幏鍙栭槦鍒楀熬閮ㄥ€笺€俻op(){returnthis.items.pop();}tail(){returnthis.items[this.items.length-1];}constmaxSlidingWindow=(nums:number[],k:number)=>{constqueue=newQueue();璁﹎axArr:number[]=[];nums.forEach((item,index)=>{while(!queue.isEmpty()&&item>=nums[queue.tail()]){queue.pop();}queue.enqueue(index);if(queue.peek()<=index-k)queue.dequeue();if(index>=k-1)maxArr.push(nums[queue.peek()]);})returnmaxArr;}鍚庤馃敆閾炬帴鍒版湰鏂囦唬鐮佺殑Github锛歋tack,Queue