算法
一只勤奋的代码狗
星辰大海
展开
-
剑指 Offer 15. 二进制中1的个数
//计算二进制中的1个个数 ,利用php的位运算符 按位与(&) 和 >>(按位右移) 按位与 对位是1的就是1 1001 1011 ---- 1001 按位右移(9>>2 = 2) 1001 右移2 0010 function hammingWeight($number){ $count = 0; while ($number){ //判断对位是否是1,如果是1说明存在1 $count = $count + ($.原创 2020-08-17 22:03:16 · 84 阅读 · 0 评论 -
不使用中间变量交换2个变量的值
首先最简单的是加减乘除,但是这些运算会出现精度问题。。如果使用整数测试,肯定没问题,但是极端情况就会出现精度问题。具体想看的鸟哥博客传送门:https://www.laruence.com/2013/03/26/2884.html 不出现上面的问题就使用位运算 ^ $a = 9; $b = 5; $b = $a^$b; $a = $b^$a; $b = $a^$b; var_dump($a); var_dump($b); 首先搞清楚 ^ 是代表什么意思,就是按对应的二进位相异或,当两对应的二进位.原创 2020-08-16 09:43:23 · 104 阅读 · 0 评论 -
旋转数组 解决字符串翻转 www.baidu.com ==> com.baidu.www 字节面试一道算法
<?php //www.baidu.com ==>com.baidu.www function strreverse($str){ if(empty($str)){ return ''; } $str_len = strlen($str); $arr = []; for ($i = 0;$i<$str_len;$i++){ $arr[] = $str[$i]; } $k = 3; //.原创 2020-08-16 01:11:26 · 380 阅读 · 0 评论