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)
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
FROM Student S
GROUP BY S.name
Having MIN(S.score)>=80