PHP面试编程

1:1,2,3,5,8,13,21.....编程写出第n个

function done($first,$second){
$n=$first + $second;
if($n > 100) return;
echo $n .",";
done($second,$n);
}
$result=done(1,1);
echo $result;

2: 一个整型数组,求数组中出现次数最多的元素,时间复杂度是多少:

function repeatMostValues($array){
$new_array=array_count_values($array);
arsort($new_array);
$max_counts=reset($new_array);
foreach($new_array as $k=>$v){
if($v == $max_counts){
$values_array[]=$k;
}
}
return $values_array;
}

$array = array(1, 1, 1,1,1,54, 3,4, 3,4, 3, 14, 3,4, 3,7,8,9,12,45,66,5,7,8,9,2,45);
$result=repeatMostValues($array);
var_dump($result);

时间复杂度是o(n)

3:求一个字符串中只出现1次的第一个字符:

function search_char($str){
$len=strlen($str);
$arr=array();
for($i=0;$i<$len;$i++){
$item=$str{$i};
if(isset($arr[$item])){
$arr[$item]++;
}else{
$arr[$item]=1;
}
}
foreach($arr as $k=>$v){
if($v==1){
$a[]=$k;
}
}
return $a;
}
$str="aabssddgjk";
$re=search_char($str);
$value=$re[0];
$position=strpos($str,$value);
var_dump($position);

 

 

一个SQL查询出每门课程的成绩都大于80的学生姓名

name kecheng fenshu 
张三 语文 81 
张三 数学 75 
李四 语文 76 
李四 数学 90 
王五 语文 81 
王五 数学 100 
王五 英语 90

SQL1:

 select name from stu
group by name
having name not in (
select name from stu
where score <80)
SQL2:
 SELECT S.name 

FROM Student S
GROUP BY S.name 

Having MIN(S.score)>=80
 
 

posted on 2017-08-17 16:24  阳雪凌空  阅读(167)  评论(0编辑  收藏  举报

导航