当前位置: 首页 > 后端技术 > PHP

非开发coding每天收集

时间:2023-03-30 02:39:33 PHP

,动手实践,我还没查过是不是最优解。有更好解决方案的朋友欢迎给我留言,谢谢。Days2问题:给定一个随机数组,纯数字,不重复值,请使用递归对其进行排序。输入:[12,42,5,23,65]输出:[5,12,23,42,65]解决方案:functionquick_sort($array){if(count($array)>1){$array_left=[];$array_right=[];$base=array_pop($array);foreach($arrayas$item){如果($base<$item){array_push($array_left,$item);}else{array_push($array_right,$item);}}$array_left=quick_sort($array_left);$array_right=quick_sort($array_right);返回array_merge($array_left,[$base],$array_right);}返回$array;}$array=[2,6,12,3,1,9];print_r(快速排序($array));/*结果是Array([0]=>12[1]=>9[2]=>6[3]=>3[4]=>2[5]=>1).*/Days1问题:给定一个数字数组,请使用递归将其中的值相加。输入:[2,4,6]输出:12解决方案:functionsum($array){if(count($array)>1){returnarray_pop($array)+sum($array);}return$array[0];}echosum([2,6,3,1,9]);//结果为21问题:给定的数组与上一题相同,请使用递归计算内部值的个数。输入:[2,4,6]输出:3解:functionarray_count($array){$count=0;如果($array!==[]){array_pop($array);返回++$count+array_count($array);}return$count;}echoarray_count([2,6,10,3,1,9]);//结果是6