原创 從全排列和八皇后問題談回溯
一般來講,人們常常提及的回溯,通常指走不通就掉頭。另一種情況,路走完了,回到開始的地方重新選擇另一條路,也可稱之爲回溯——下面是重點。 幾乎所有回溯的寫法,都是for循環裏嵌套着遞歸。如果不存在走不通的情況,則無條件遞歸,否則,就用if判
原创 18行代碼3重循環解決最長公共子序列
這個三重循環算是比較複製和難的了,前面我寫了一個和這個類似但比這簡單的二重循環,有興趣的同學可參看:從最長子串問題談continue的使用。 說實話,網上的看的懂,但好像寫不出2333.... 所以我就以自己的理解,如果有錯誤的地方,歡迎
原创 從最長子串問題談continue的使用
說來慚愧,寫了一年半的代碼,卻從未使用過continue!——相信和我一樣甚至時間比我還要長的都大有人在吧! 好了,言歸正傳,先上代碼一睹爲快。 <?php $a='zaqbdacde'; $b='zaqbacdef'; for($i=0
原创 用全排列的方法解決八皇后問題
用百度搜索八皇后問題,幾乎清一色都是用回溯,有興趣的同學可參考:從全排列和八皇后問題談回溯。 解決一個問題,我們應該充分利用已有的條件,化繁爲簡。 $a=[0,1,2,3,4,5,6,7]; 可以看到,這個數組的下標剛好也是0到7——對應
原创 從最短路徑談動態規劃和貪心算法
一言以蔽之:動態規劃,從全局最優考慮;最短路徑,從當前最優考慮。 先考慮下面的圖 可以很容易地看出,如果使用貪心算法,從a到e的路線將是:a->b->c->d->e,而採用動態的規劃的路線則是:a->c->e。 貪心算法的優點是代碼非常
原创 淺談遞歸和迭達
衆所周知,幾乎所有的算法都離不開遞歸和迭代,無論是從小白剛接觸的冒泡排序,還是日後進階的深度和廣度搜索。本文試就二者本質的區別與聯繫討論開來,遺漏錯誤之處,煩請指出。首先,從一輸出到十,最先想到的肯定是:for($i=1;$i<=10;$
原创 flex 的封裝和簡化
.COL{ display:flex; flex-direction:column; height:100vh; width:100vw; } .flex{ display:flex; } .col{ display:f
原创 前端mvc加css in js
<style> body{margin:0;} li{list-style:none;cursor:pointer;} </style> <body></body> <script src=jq.js></script> <script
原创 觀察者模式
<script> a=[] Object.prototype.Push=function(){ length=this.length setInterval(()=>{ if(this.length > length ){
原创 事件監聽
<script> a=[] Object.prototype.Push=function(callback){ length=this.length setInterval(()=>{ if(this.length > leng
原创 異步讀取文件的原理
open函數內部不斷判斷是否讀取就緒,就緒後調用回調函數。 <script> file=[] a={} a.txt='wait for long' a.js='i am js file' function sleep(delay) {
原创 歡迎光臨
<meta charset=utf-8 /> <style> body{margin:0;overflow:hidden} div,li{list-style:none;cursor:pointer;font-size:50;trans
原创 頁面響應數組的改變
<meta charset=utf-8 /> <style> body{margin:0} li{list-style:none;cursor:pointer} .nav{display:flex;flex-direction:colu
原创 這react尼瑪太狂野了
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Hello React!</title> <script src="https://cdn.staticfile
原创 簡易聊天室
<style> body{margin:0px;} li{list-style:none;} .enter{ height:100%; display:flex; justify-content:center; align-it