章節連結
這回從基礎的陣列開始。陣列是資料結構中最常見,也最方便存取的一種模式,幾乎各個程式語言都有。不過若要追加、刪除數據的話,就會比較費時。若不巧要從一個共有n項的陣列的第一個開始放入,那就得先新增一個位置到最尾端,再將現有的一個個值將往後退。換言之,就是得作N次操作。
指令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 初始化陣列 let daysOfWeek = [] // 相關方法,由上而下執行操作的結果 let numbers = [0,1,2] numbers.push(3) 或是 numbers[numbers.length] = 3 // [0,1,2,3] numbers.unshift(-1) // [-1,0,1,2,3] numbers.pop() // [-1,0,1,2] numbers.splice(1,1) // [-1,1,2] numbers.splice(1,1,5,-10,10) // [-1,5,-10,10,2] numbers.reverse // [2,10,-10,5,-1] numbers.sort() // [-1,-10,10,2,5],照字串排序 numbers.sort((a,b)=>{ return a-b }) // [-10,-1,2,5,10] |
LeetCode 練習記錄
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
// 11. Container With Most Water https://leetcode.com/problems/container-with-most-water/ var maxArea = function(height) { let max = 0 let x = 0 let y = 0 let limitX = 0 let limitY = height.length -1 for(let i=0;i<height.length;i++){ x = limitY-limitX if(height[limitX]>height[limitY]){ y = height[limitY] limitY-- }else{ y = height[limitX] limitX++ } if(max < x*y){ max = x*y } } return max }; // 14. Longest Common Prefix https://leetcode.com/problems/longest-common-prefix/ var longestCommonPrefix = function(strs) { if(strs.length===0 || !strs) return '' let same = strs[0] for(let i=1; i<strs.length; i++){ let str = strs[i] let j=0 for(j; j<same.length;j++){ if(same[j] !== str.charAt(j)){ break } } same = same.slice(0,j) } return same }; // 27. Remove Element https://leetcode.com/problems/remove-element/ var removeElement = function(nums, val) { let count = 0 for(let i=0;i<nums.length;i++){ if(nums[i] !== val){ nums[count++] = nums[i] } } return count }; |