1 给定一个数组,和一个目标数,输出左边小于目标数右边大于目标数的数组
解答:
使用双指针,数组开头一个指针first,结尾一个指针last,first指向的值大于目标值的时候,停止向后移动,last指向的值小于目标值的时候,停止向前移动,交换first和last指向的值,继续移动first和last,直到first和last相等。
2 hive sql
查询昨天的不同event,并统计content字段长度大于等于10和小于10的条数
SELECT
event,
SUM(CASE WHEN CHAR_LENGTH(content) >= 10 THEN 1 ELSE 0 END) AS content_length_ge_10,
SUM(CASE WHEN CHAR_LENGTH(content) < 10 THEN 1 ELSE 0 END) AS content_length_lt_10
FROM
event_log
WHERE
DATE(timestamp) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
GROUP BY
event;