php算法-饿了么面试

本文探讨了如何从日志文件中找出在一小时内访问量超过1000次的IP地址,以及使用冒泡排序算法筛选出访问量前100的IP地址的方法。通过对数据进行解析和处理,实现了对高频率访问的快速识别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、题目:a.log文件记录了全天24小时内访问的ip地址。计算任意一小时内访问量超过1000的ip地址。

$a=array(
0=>array(
“ip” => “127.0.0.0”,
“time” => “1”
),
1=>array(
“ip” => “127.0.0.0”,
“time” => “1”
),
2=>array(
“ip” => “127.0.0.0”,
“time” => “2”
),
3=>array(
“ip” => “127.0.0.1”,
“time” => “2”
),
4=>array(
“ip” => “127.0.0.1”,
“time” => “3”
),
5=>array(
“ip” => “127.0.0.2”,
“time” => “3”
),
);

length=count(length = count(length=count(a);
$num = array();
result=array();foreach(result = array(); foreach (result=array();foreach(a as key=>key=>key=>value) {
if (isset(result[result[result[value[‘ip’]])) {
continue;
}
num[num[num[value[‘ip’]] = 1;
if (isset(a[a[a[key+1])) {
for (i=i=i=key+1;i&lt;i&lt;i<length;KaTeX parse error: Expected '}', got 'EOF' at end of input: … if (a[i][′time′]−i][&#x27;time&#x27;]-i][time]value[‘time’]<3600) {
if ($value[‘ip’] == a[a[a[i][‘ip’]) {
num[num[num[value[‘ip’]] = num[num[num[value[‘ip’]]+1;
}
// if (num[num[num[value[‘ip’]] >1000) {
// break;
// }
} else {
break;
}
}
if (num[num[num[value[‘ip’]]>1000) {
result[result[result[value[‘ip’]]=num[num[num[value[‘ip’]];
}
}
unset(KaTeX parse error: Expected 'EOF', got '}' at position 7: num); }̲ var_dump(result);
var_dump($a);

2、题目:取出访问量前100的ip。

$b = array(
0 => array(
‘ip’ => ‘127.0.0.0’,
‘num’ => ‘3’,
),
1 => array(
‘ip’ => ‘127.0.0.1’,
‘num’ => ‘5’,
),
2 => array(
‘ip’ => ‘127.0.0.2’,
‘num’ => ‘9’,
),
3 => array(
‘ip’ => ‘127.0.0.3’,
‘num’ => ‘3’,
),
4 => array(
‘ip’ => ‘127.0.0.4’,
‘num’ => ‘1’,
),
5 => array(
‘ip’ => ‘127.0.0.5’,
‘num’ => ‘2’,
),
6 => array(
‘ip’ => ‘127.0.0.6’,
‘num’ => ‘7’,
),
7 => array(
‘ip’ => ‘127.0.0.7’,
‘num’ => ‘8’,
),
);
//冒泡算法取出访问量最高的100个ip

len=count(len = count(len=count(b);
for ($i=0; i&lt;i&lt;i<len-1;KaTeX parse error: Expected '}', got 'EOF' at end of input: …是最大的数 for (j=0;j&lt;j&lt;j<len-1-i;i;i;j++) {
if (b[b[b[j][‘num’] > b[b[b[j+1][‘num’]) {
$temp = b[b[b[j];
b[b[b[j] = b[b[b[j+1];
b[b[b[j+1] = KaTeX parse error: Expected 'EOF', got '}' at position 15: temp; }̲ } //当大…i>100) {
break;
}
}
result=arrayslice(result = array_slice(result=arrayslice(b,-5);
var_dump(b);vardump(b); var_dump(b);vardump(result);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值