笔试面试 已知一个升序排列的整数数组,给定一个目标值,编写一个函数实现在数组中查找目标值的功能。如果找到目标值,返回它在数组中的下标,否则返回 -1。 定义数组arr[5],系统会输入5个数,输入目标数字aid。在数组中找到aid的下表,比如第一个位置就是0; 用系统提供的scanf输入6个数字,前5个为数组元素 arr[5],最后一个为目标数字 用二分法查找目标数据,实现int binary_search(int *arr, int len, int target); 最后打印printf(” the position is %d “, offset);(注意由于机器阅卷打印内容必须和左边打印格式一样,不要多也不要少任何东西,%d前是空格) int main() { int arr[5], target, position; while (scanf(“%d %d %d %d %d %d”, &arr[0], &arr[1], &arr[2], &arr[3], &arr[4], &target) != EOF) { position = binary_search(arr,5,target); printf(“the position is %d”,position); }
笔试面试 在一个无限的二维空间中,有许多飞船在进行太空漫游。飞船的垂直位置用一个整数数组 points 表示,其中 points[i] = [ystart, yend] 意味着飞船的垂直直径在 ystart 和 yend 之间。需要注意的是,你并不清楚飞船的确切 x 坐标。 你有一个可以沿着 y 轴水平发射的激光发射器。如果在 y 坐标发射一束激光,且有飞船的垂直直径开始和结束坐标满足 ystart ≤ y ≤ yend,那么这艘飞船将被 破坏。激光发射器的发射次数没有限制,并且一旦激光发射,它可以无限地向左和向右扩展。 你的任务是,给定飞船的数组 points,找出破坏所有飞船所需要的 最小激光发射次数。