摘要:
1 <?php 2 #Fibonacci数列问题 3 #f(1) = 1 4 #f(n) = f(n - 1) + f(n - 2) 5 #求f(n) 6 7 #递归方法 8 function fibonacci($n) { 9 if ($n == 0) {10 return 0;11 }12 13 if ($n == 1) {14 return 1;15 }16 17 return fibonacci($n - 1... 阅读全文
摘要:
1 <?php 2 #生成二叉树镜像(交换树的所有左右节点) 3 4 class Node { 5 public $data = null; 6 public $parent = null; 7 public $left = null; 8 public $right = null; 9 }10 11 #递归方法12 function mirror_recursive($root) {13 if ($root === null) {14 retur... 阅读全文
摘要:
1 <?php 2 #查找链表倒数第i个节点,倒数第0个为最后一个节点 3 class Node { 4 public $data = null; 5 public $next = null; 6 } 7 8 #第一种方法,先算出链表总长,然后向后寻找n-i个节点 9 function last_i($head, $i) {10 $cnode = $head;11 $n = 0;12 while ($cnode != null) {13 $n++;... 阅读全文
摘要:
1 <?php 2 class Sum0 { 3 public function sum() { 4 return 0; 5 } 6 } 7 8 class Test { 9 private $a = array();10 11 public function __construct() {12 $this->a[0] = new Sum0();13 $this->a[1] = $this;14 ... 阅读全文
摘要:
1 <?php 2 #不用加减乘除做加法 3 #思路:使用位运算实现 4 #先算出二者不进位的相加结果,xor实现 5 #再算出二者的进位结果,位与和位移实现 6 #最后把两个结果相加 7 8 function cplus($num1, $num2) { 9 if ($num2 == 0) {10 return $num1;11 }12 13 $sum = $num1 ^ $num2;14 $carry = ($num1 & $num2) << 1;15 ... 阅读全文