原创 LeetCode36.有效的數獨 JavaScript

判斷一個 9x9的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。 數字 1-9 在每一行只能出現一次。 數字 1-9 在每一列只能出現一次。 數字 1-9 在每一個以粗實線分隔的 3x3 宮內只能出現一次。 上圖是

原创 LeetCode41.缺失的第一個正數 JavaScript

給定一個未排序的整數數組,找出其中沒有出現的最小的正整數。 示例 1: 輸入: [1,2,0]輸出: 3 示例 2: 輸入: [3,4,-1,1]輸出: 2 示例 3: 輸入: [7,8,9,11,12]輸出: 1 答案參考: /** *

原创 LeetCode35.搜索插入位置 JavaScript

給定一個排序數組和一個目標值,在數組中找到目標值,並返回其索引。如果目標值不存在於數組中,返回它將會被按順序插入的位置。 你可以假設數組中無重複元素。 示例 1: 輸入: [1,3,5,6], 5輸出: 2 示例 2: 輸入: [1,3,5

原创 LeetCode31.下一個排列 JavaScript

實現獲取下一個排列的函數,算法需要將給定數字序列重新排列成字典序中下一個更大的排列。 如果不存在下一個更大的排列,則將數字重新排列成最小的排列(即升序排列)。 必須原地修改,只允許使用額外常數空間。 以下是一些例子,輸入位於左側列,其相應輸

原创 LeetCode34.在排序數組中查找元素的第一個和最後一個位置 JavaScript

給定一個按照升序排列的整數數組 nums,和一個目標值 target。找出給定目標值在數組中的開始位置和結束位置。 你的算法時間複雜度必須是 O(log n) 級別。 如果數組中不存在目標值,返回 [-1, -1]。 示例 1: 輸入: n

原创 LeetCode29.兩數相除 JavaScript

給定兩個整數,被除數 dividend和除數 divisor。將兩數相除,要求不使用乘法、除法和 mod 運算符。 返回被除數 dividend 除以除數 divisor 得到的商。 示例 1: 輸入: dividend = 10, div

原创 LeetCode28.實現strStr() JavaScript

實現 strStr() 函數。 給定一個 haystack 字符串和一個 needle 字符串,在 haystack 字符串中找出 needle 字符串出現的第一個位置 (從0開始)。如果不存在,則返回 -1。 示例 1: 輸入: hays

原创 LeetCode27.移除元素 JavaScript

給定一個數組 nums 和一個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後數組的新長度。 不要使用額外的數組空間,你必須在原地修改輸入數組並在使用 O(1) 額外空間的條件下完成。 元素的順序可以改變。你不需要考慮數組

原创 刷前端面經筆記(二)

1.實現三欄佈局(左右兩邊固定寬度,中間自適應) 1)浮動佈局左右兩邊固定寬度,並分別設置float:left和float:right。(但這會帶來高度塌陷的問題,所以要清除浮動。清除浮動的方式有:a. 給父級盒子設置height; b.

原创 刷前端面經筆記(一)

1.CSS的盒子模型 包含元素內容content、內邊距padding、邊框border、外邊距marginbox-sizing:border-box;content-box;inherit;1) content-box:總寬度=margi

原创 學習前端路由和vue-router筆記

前端路由原理本質就是監聽 URL 的變化,然後匹配路由規則,顯示相應的頁面,並且無須刷新。目前單頁面使用的路由就只有兩種實現方式 hash history www.test.com/##/ 就是 Hash URL,當 ## 後面的哈希值

原创 學習MVVM及框架的雙向綁定筆記

MVVM由以下三個內容組成 View:視圖模板 Model:數據模型 ViewModel:作爲橋樑負責溝通View和Model,自動渲染模板 在JQuery時期,如果需要刷新UI時,需要先取到對應的DOM再更新UI,這樣數據和業務的邏輯

原创 學習Virtual Dom筆記

實現虛擬(Virtual) Dom 把一個div元素的屬性打印出來,如下: 可以看到僅僅是第一層,真正DOM的元素是非常龐大的,這也是DOM加載慢的原因。相對於DOM對象,原生的JavaScript對象處理起來更快,而且更簡單。DOM樹上

原创 學習JavaScript的原型筆記

JavaScript的原型(prototype、__proto__、constructor) 構造函數:function Foo() {};實例對象: let f1 = new Foo;let o1 = new Foo; (全文的proto

原创 學習JavaScript閉包和作用域筆記

JS JavaScript閉包和作用域 閉包 JavaScript高級程序設計中對閉包的定義:閉包是指有權訪問另外一個函數作用域中變量的函數。 從概念上,閉包有兩個特點: 函數 能訪問另外一個函數的作用域中的變量 在ES6之前,Java