20200330 面试题
- 2020-03-30
- 编程
- 2020-03-30 13:02:46
-
实现阶乘函数 F($n)
递归法:
<?php function F($n) { if ($n == 1) { return 1; } return $n * F($n - 1); }
循环法:
<?php function F($n) { $res = 1; for ($i = 1; $i<=$n; ++$i) { $res = $res * $i; } return $res; }
注意 $n 的取值大于等于 0。
-
MySQL 查询问题
表
date_flag
结构如下,其中t_date
字段为日期,t_flag
字段取值Y
或N
,t_signal
字段取值1
或2
。寻找t_flag
为Y
且同时存在t_signal
为 1 和 2 记录的最大的t_date
值。t_date t_flag t_signal 2019-02-07 Y 1 2019-02-07 N 2 2019-02-06 Y 2 使用分组+计数的方法:
SELECT `t_date` FROM `date_flag` WHERE t_finished='Y' GROUP BY `t_date` HAVING COUNT(IF(`t_flag`=1, TRUE, NULL)) > 0 AND COUNT(IF(`t_flag`=2, TRUE, NULL)) > 0 ORDER BY `t_date` DESC LIMIT 0, 1;
-
MySQL 存储引擎
关键字:MyISAM、InnoDB、聚簇索引
-
运维相关,查找目录 dir 下包含字符串 "test" 的所有文件:
使用
grep
命令:grep -rn "test" dir
-
Angular 中 ngIf ngShow 区别
前者会根据条件创建/删除页面元素,后者只是通过 CSS 显示/隐藏页面元素。
-
txt 文件中包含约 60 万行数据,每行都由17位数字组成,数据库中也有若干类似形式数据,找出 txt 文件中但不存在于数据库中的数据。
思路:从数据库中查出所有数据存到数组里,从 txt 文件逐行读取并判断。
array_diff()
/isset()
?