算法
薛衣人
真的勇士,敢于直面惨淡的warning、敢于正视淋漓的error。
展开
-
百度面试题 PHP重新排列数组的数,使得负数都排在正数的前
问题描述设A是由n个非0实数构成的数组,设计一个算法重新排列数组的数,使得负数都排在正数的前面。要求算法使用O(n)的时间和O(1)的空间解决思路对于这样一个问题,我们最容易想到的思路是对数组进行排序,然后就得到了目标数组,然而题目中还对时间复杂度与空间复杂度进行了限制,即使是快速排序,时间复杂度最优也要O(nlogn),而空间复杂度最优也需要O(n),显然不满足题目要求。事实上从题目来看,我们也不需要对整个数组进行排序,我们的目的是将数组分成两个部分,一个部分是小于零的,另一个部分是小于零的,这样原创 2020-06-04 23:14:09 · 1417 阅读 · 0 评论 -
超简单一分钟教你猴子选大王算法(PHP详解)
//10只猴子//思路 没有叫到的删除掉原来的位置,加到后面//原理:循环链表$monkeys = [1,2,3,4,5,6,7,8,9,10];$king = chooseMonkeyKing($monkeys,3); //求交集取出来原始位置$king_pos = array_intersect($monkeys, $king);echo '<pre>';prin...原创 2020-04-07 14:44:19 · 541 阅读 · 0 评论