原创 【JS能力測評45題--34】二進制轉換
將2進制(字符串)轉10進制 parseInt(str,2); function base10(str) { return parseInt(str,2); }
原创 【前端大挑戰15題--01】修改this指向
注意需要return 一下 function bindThis(f, oTarget) { return f.bind(oTarget); }
原创 [力扣Hot 100------第3題--152.乘積最大子序列]
這道題跟 連續子數組的最大和 類似,唯一的區別在於這題是乘積,負數的影響在於會把當前最大變成當前最小,會把當前最小變成當前最大。因此需要另一個當前最小的變量,一旦nums[i]<0,那麼就把當前最大和當前最小對調。 var max
原创 【JS能力測評45題--42】判斷是否以元音字母結尾
Way One: function endsWithVowel(str) { let reg=/(a|o|i|o|u)$/gi; return reg.test(str); } Way Two: function en
原创 [力扣Hot 100------第11題--226.翻轉二叉樹]
So easy的事情~~~ var invertTree = function(root) { if(root===null) return null; var temp=root.left; root.left
原创 [力扣Hot 100------第6題--200.島嶼數量]
記住DFS的兩個要點:遞歸+安全帶; 而BFS沒有這些,而是藉助一個stack數組。 1.DFS var numIslands = function(grid) { var m=grid.length; if(m=
原创 【JS能力測評45題--45】判斷是否符合 USD 格式
需要考慮$後的首位爲0的情況 function isUSD(str) { let reg=/^\$(([1-9]\d{0,2}(,\d{3})*)|0)(\.\d{2})?$/; return reg.test(str)
原创 【JS能力測評45題--36】乘法
取兩者小數點後的最大長度作爲最終結果需要保留的小數位數 function multiply(a, b) { let str_a=a.toString(); let str_b=b.toString(); let
原创 【JS能力測評45題--32】模塊
function createModule(str1, str2) { var obj = { greeting : str1, name
原创 【JS能力測評45題--44】判斷是否符合指定格式
注意^,$不能漏~~~ function matchesPattern(str) { let reg=/^\d{3}-\d{3}-\d{4}$/; return reg.test(str); }
原创 [力扣Hot 100------第9題--215.數組中的第K個最大元素]
利用到快速排序的partition算法,partition算法十分重要,一定要搞熟練~~ var findKthLargest = function(nums, k) { var left=0,right=nums.length
原创 [力扣Hot 100------第10題--221.最大正方形]
這一題乍一看以爲是回溯,但其實是二維dp. var maximalSquare = function(matrix) { const m=matrix.length; if(m===0) return 0; c
原创 [力扣Hot 100------第8題--207.課程表]
這題算是DFS/BFS這塊最難下手的一題了,需要多刷幾遍~~ 1.BFS var canFinish = function(numCourses, prerequisites) { var num=numCourses;
原创 [力扣Hot 100------第5題--198.打家劫舍]
屬於難度略高一丟丟的dp,還行,重點是dp方程嘛~~ dp[i]=Math.max(dp[i-2]+nums[i],dp[i-1]); var rob = function(nums) { if(nums.length===0)
原创 [力扣Hot 100------第4題--160.相交鏈表]
方法肯定知道,就是這裏有個細節:必須寫成p1=p1===null?headB:p1.next; 而不是p1=p1.next===null?headB:p1.next;主要就是要考慮到壓根兩個鏈表沒有交點的情況,這個時候就要及時解脫了。後種