上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 34 下一页
  2012年9月30日
摘要: 1 <?php 2 #通过数组判断该数组顺序输出是否是二叉树后序遍历结果 3 4 #@param a 待判断数组 5 #@param s 待判断开始部分 6 #@param e 待判断结束部分 7 function is_bst_post($a, $s, $e) { 8 if ($s == $e) { 9 return true;10 }11 12 #由于是后序遍历,所以根节点必然是最后一个元素13 $root = $a[$e];14 #找... 阅读全文
posted @ 2012-09-30 15:57 ZimZz 阅读(603) 评论(0) 推荐(0) 编辑
摘要: 1 <?php 2 #a[n+1]共有n+1个数,数值范围是1~n,a中有1个数重复,其他各不相同,找出这个相同的数 3 4 #第一种方法,利用 a数组的和减去1+2+3+...+n的和,得到的结果就是重复数字 5 function get_dup($a) { 6 $size = count($a); 7 $suma = 0; 8 $sumn = 0; 9 for ($i = 0; $i < $size; $i++) {10 $suma += $a[$i];11 ... 阅读全文
posted @ 2012-09-30 00:16 ZimZz 阅读(1420) 评论(0) 推荐(0) 编辑
  2012年9月29日
摘要: 搜索文本 text = "my testing algorithm in test"模式 pattern = "test"Sunday算法的关键点在于1.设定一个匹配位移映射 shift[],这个shift[]映射关系必须按从左到右的顺序简历,例如pattern = "test",注意到此处有2个t,那么建立出来的位移映射是 shift[] = Array ( [t] => 1 [e] => 3 [s] => 2 ),而如果不是从左到右,是从右到左的建立映射,就会变成 shift[] = Array ( [t] =& 阅读全文
posted @ 2012-09-29 20:27 ZimZz 阅读(4083) 评论(0) 推荐(0) 编辑
摘要: 1 <?php 2 #颠倒字符串 3 4 #将字符串从头和尾向中间遍历,交换位置 5 function cstrrev(&$str, $begin, $len) { 6 $i = $begin; 7 $j = $begin + $len - 1; 8 while ($i < $j) { 9 $temp = $str[$i];10 $str[$i] = $str[$j];11 $str[$j] = $temp;12 ... 阅读全文
posted @ 2012-09-29 17:55 ZimZz 阅读(1033) 评论(0) 推荐(0) 编辑
  2012年9月28日
摘要: 1 <?php 2 #逆转单链表 3 class Node { 4 public $data = null; 5 public $next = null; 6 } 7 8 #递归版本 9 #思想是一直递归到倒数第二个非空节点,并将其next->next指向自己,将自己的next指向null10 #为了获得逆转后的头结点,在最后一个非空节点,即cnode->next == null时,将节点返回11 function reverse_list_r($node) {12 if ($node-... 阅读全文
posted @ 2012-09-28 23:32 ZimZz 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 解题思路:分三种情况1.两个链表都是无环链表,则使用指针p1,p2,分别遍历到两个链表尾,如果p1===p2,说明链表相交,否则不相交2.两个链表有一个有环,另一个无环,那么这种情况链表肯定不相交,因为如果其中一个有环,另一个和它相交,另一个也肯定会有环3.两个链表都有环,找到链表a和链表b的环中的两个节点p1,p2,用pa=p1,然后用pa=pa->next,直到pa===p1(意思是让pa在环内跑一圈),如果在跑的过程中发现pa === p2,说明两个链表的环是同一个,则相交,如果到达pa===p1,说明两个链表不相交下面是代码 1 <?php 2 #判断链表是否相交 3 .. 阅读全文
posted @ 2012-09-28 14:34 ZimZz 阅读(525) 评论(0) 推荐(0) 编辑
摘要: 如:上排数组A:0,1,2,3,4,5,6,7,8,9下排数组B:6,2,1,0,0,0,1,0,0,0我比较无脑的记住了网上找的一个结论0出现的次数为n-4,1出现的次数为2.2出现的次数为1。n-4出现的次数为1.如果数列中无这四个数,则无解。 阅读全文
posted @ 2012-09-28 11:20 ZimZz 阅读(798) 评论(2) 推荐(1) 编辑
摘要: 1 <?php 2 #查找数组中最小的k个数 3 4 function swap(&$arr, $i, $j) { 5 $temp = $arr[$i]; 6 $arr[$i] = $arr[$j]; 7 $arr[$j] = $temp; 8 } 9 10 #第一种方法,使用选择排序直到排好序的部分元素个数为k,效率为O(kn) 11 function select_sort_k($arr, $k) { 12 if ($k >= count($arr)) {... 阅读全文
posted @ 2012-09-28 00:26 ZimZz 阅读(1234) 评论(0) 推荐(0) 编辑
  2012年9月27日
摘要: 1 <?php 2 #输入一棵二叉树和一个数字n,要求找出路径和为n的所有路径 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 build_cbtree($a) {13 $root = new Node();14 $r... 阅读全文
posted @ 2012-09-27 19:18 ZimZz 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 1 <?php 2 class Node { 3 public $data = null; 4 public $parent = null; 5 public $left = null; 6 public $right = null; 7 } 8 9 #使用数组构造完全二叉树10 function build_cbtree($a) {11 $root = new Node();12 $root->data = $a[0];13 14 for ($i... 阅读全文
posted @ 2012-09-27 19:10 ZimZz 阅读(1972) 评论(0) 推荐(0) 编辑
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 34 下一页