十二 18
  1. <?php
  2. // 生成100万个数字
  3. $array  = array();
  4. for ($i = 0; $i < 1000000; $i++) {
  5.     $array[$i] = 1000000 - $i; // 最好的情况 最大的3个数字在前3个
  6.     // $array[$i] = $i; // 最坏的情况 最大的3个数字在后3个
  7. }
  8.  
  9. // 声明数组
  10. $result = array(0, 0 ,0);
  11.  
  12. // 开始遍历查找
  13. foreach ($array as $i => $value) {
  14.     if ($array[$i] > $result[2]) { // 与第3位数字对比
  15.         $temp = $array[$i];
  16.         $array[$i] = $result[2];
  17.         $result[2] = $temp;
  18.         if ($result[2] > $result[1]) { // 与第2位数字对比
  19.             $temp = $result[2];
  20.             $result[2] = $result[1];
  21.             $result[1] = $temp;
  22.             if ($result[1] > $result[0]) { // 与第1位数字对比
  23.                 $temp = $result[1];
  24.                 $result[1] = $result[0];
  25.                 $result[0] = $temp;
  26.             }
  27.         }
  28.     }
  29. }
  30.  
  31. /**
  32.  * 结果
  33.  * Array ( [0] => 1000000 [1] => 999999 [2] => 999998 )
  34.  */
  35. print_r($result);

看xdebug的结果在最好情况下耗时1秒左右:

最坏情况耗时3秒左右:

十二 06

给定两个正整数(二进制形式表示)A和B,问把A变为B需要改变多少位(bit)?
也就是说,整数A 和B 的二进制表示中有多少位是不同的?

先异或A和B得结果C,在统计结果C的二进制中有多少位1,即求到了A和B的二进制中有多少不同的位N。

  1. <?php
  2. $n = 0;
  3. $a = 10;
  4. $b = 20;
  5. $c = $a ^ $b;
  6.  
  7. echo 'A:' . str_pad(decbin($a), 8, 0, STR_PAD_LEFT) . '<br />';
  8. echo 'B:' . str_pad(decbin($b), 8, 0, STR_PAD_LEFT) . '<br />';
  9. echo 'C:' . str_pad(decbin($c), 8, 0, STR_PAD_LEFT) . '<br />';
  10. while ($c) {
  11.     $c &amp;= ($c - 1);
  12.     $n++;
  13. }
  14. echo 'N:' . $n . '<br />';
13
  1. /**
  2.  * 计算2个日期之间相隔的天数
  3.  *
  4.  */
  5. function dateDiff(startDate, endDate)
  6. {
  7.  var days  = 0;
  8.  
  9.  if (startDate == endDate) {
  10.   return days;
  11.  }
  12.  
  13.  var sDate  = startDate.split('-');
  14.  var eDate  = endDate.split('-');
  15.  
  16.  var sYear  = parseInt(sDate[0]);
  17.  var sMonth = parseInt(sDate[1]);
  18.  var sDay   = parseInt(sDate[2]);
  19.  var eYear  = parseInt(eDate[0]);
  20.  var eMonth = parseInt(eDate[1]);
  21.  var eDay   = parseInt(eDate[2]);
  22.  
  23.  for (var y = sYear; y <= eYear; y++) {  
  24.   if (y == eYear) {
  25.    for (var m = 1; m <= eMonth; m++) {
  26.     if (m == eMonth) {
  27.      days = days + eDay - sDay;
  28.     } else if (m >= sMonth) {
  29.      days = days + getMonthDays(y, m);
  30.     }
  31.    }
  32.   } else {
  33.    days = days + ((leapYear(y)) ? 366 : 365);
  34.   }
  35.  }
  36.  
  37.  return days;
  38. }
  39.  
  40.  
  41. function getMonthDays(year, month)
  42. {
  43.     var ar = new Array();
  44.     ar[1]  = 31;
  45.     ar[2]  = (leapYear(year)) ? 29 : 28;
  46.     ar[3]  = 31;
  47.     ar[4]  = 30;
  48.     ar[5]  = 31;
  49.     ar[6]  = 30;
  50.     ar[7]  = 31;
  51.     ar[8]  = 31;
  52.     ar[9]  = 30;
  53.     ar[10]  = 31;
  54.     ar[11] = 30;
  55.     ar[12] = 31;
  56.  
  57.     return ar[month];
  58. }
  59.  
  60. function leapYear(year)
  61. {
  62.     if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
  63.         return true;
  64.     }
  65.  
  66.     return false;
  67. }
30

公司组织的2天黄山游自我感觉收获很大。

26日培训的收获:
1. 想法不等于目标
2. 目标必须清晰必须量化
3. 完不成目标必须付出沉重代价
4. 强者制定规则 弱者遵守规则

唯一的遗憾就是培训时间有些短,应该再搞2天。

27日去翡翠谷,可能和我小时候的生活环境有关系,翡翠谷的风景并不是很吸引我。

意外的收获:
感谢李敏
3p=2男1女
双飞=1男2女

感谢赵总
男的接电话:需要按摩服务吗?
女的接电话:需要足疗服务吗?

感谢所有52PK的同事。

03

域名换成 blog.henghome.com
301 跳转规则:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^henghome.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.henghome.com$
RewriteRule ^(.*)$ http://blog.henghome.com/$1 [R=301,L]

09

下载 IECookiesView 并运行

随便选中一个网站 在cookie列表中选中一个cookie右键单击 选中 编辑cookie内容 注意要先关闭所有 浏览器

06

2010年3月5日 19:52:58 QQ同时间在线用户1亿,太强大了。

腾讯一直在模仿,只有QQ是最成功的。

唯一的遗憾的QQ运行在Windows系统中,再强也强不过Microsoft,腾讯会不会出操作系统?

雨林木风和腾讯有没有联系?

21

无论你怎么变,你还是广告评论,直接设为垃圾。