zoom 笔试 2021/8/28
zoom笔试
第一部分
单选:
- 给出ip和掩码,计算网络号
- 排序算法,各种的复杂度,稳定性,二分法比较次数
- Java代码判断执行结果
- 图的基础知识
- a = 2 | 24 ,这个原来是或运算啊,我当时没看出来,梦错答案了啊!!
第二部分
多选:
- 排序问题
- 数据库引擎,日志。有道题问执行了delete后,执行下列那个语句磁盘不会删除
- 其他的忘了,有挺多不确定的
第三部分
第一题:
找132模式的匹配,有一个数组,找出遵循以下规则的个数,有下标索引i,j,k满足条件:
i < j < k 并且 nums[i] < nums[k] < nums[j]
例子:
[-1,3,2,0]
3
解释:满足条件的有[-1, 3, 2] [-1,3,0] [-1,2,0]
直接暴力了,我是想不到啥好的方法。。
/** * @author keboom * @date 2021/8/28 */ public class Solution1 { public int find132Pattern (int[] nums) { int len = nums.length; int count = 0; // 第一个数 for (int i = 0; i < len-2; i++) { // 第二个数 for (int j = i+1; j < len-1; j++) { // 第三个数 for (int k = j+1; k < len; k++) { if (nums[i] < nums[k] && nums[k] < nums[j]) { count++; } } } } return count; } public static void main(String[] args) { int[] nums = {-1, 3, 2, 0}; int res = new Solution1().find132Pattern(nums); System.out.println(res); } }
第二题:
给你个数组,滑动窗口大小,滑动窗口步长。求每个窗口中最大值
例子:
[1,3,-1,-3,5,3,6,7],3,2
[3, 5, 6 ,7]
解释:[1,3-1] 中最大值3,[-1,-3,5] 中最大值5,[5,3,6] 中最大值6,[6,7] 中最大值7
由于他给的例子中数组长度都是偶数,所以我的返回结果中数组长度有问题,没有考虑数组长度为奇数的情况,最后也没来的及改,早知道前面加快点速度了。。。只过了40%,剩下的应该都是数组长度为奇数的情况了。
import java.util.Arrays; /** * @author keboom * @date 2021/8/28 */ public class Solution2 { public int[] slideWindow(int[] nums, int windowSize, int step) { int left = 0; int right = windowSize-1; int resLen = 0; // 如果是偶数 if (nums.length % 2 == 0) { resLen = nums.length / step; } else { // 如果是奇数 resLen = (nums.length+1)/step; } int[] res = new int[nums.length / step]; int resIndex = 0; while (left < nums.length) { findMax(nums, left, right,res,resIndex); left += step; right += step; resIndex++; } return res; } private void findMax(int[] nums, int left, int right, int[] res, int resIndex) { int max = Integer.MIN_VALUE; for (int i = left; i <= right; i++) { if (i == nums.length) { break; } max = Math.max(max, nums[i]); } res[resIndex] = max; } //[1,3,-1,-3,5,3,6,7],3,2 //[1,3,-1,-3,5,3,6,7],3,1 public static void main(String[] args) { int[] nums = {1,3,-1,-3,5,3,6,7}; int[] res = new Solution2().slideWindow(nums, 3, 2); System.out.println(Arrays.toString(res)); } }#zoom校招##笔经##ZOOM#