摘要:
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-... 阅读全文
摘要:
解题思路:分三种情况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 .. 阅读全文
摘要:
如:上排数组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.如果数列中无这四个数,则无解。 阅读全文
摘要:
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)) {... 阅读全文