Zoom——Android客户端开发笔试编程题

Zoom——Android客户端开发笔试编程题
public class Solution {

    /**
     * 132匹配,统计有多少个这样的模式
     * 通过100%
     * @param nums
     * @return
     */
    public int find132Pattern (int[] nums) {
        // write code here
        int len = nums.length;
        int count = 0;
        for (int i = 0; i < len; i++) {
            for (int j = i + 1; j < len; j++) {
                for (int k = j + 1; k < len; k++) {
                    if(nums[i] < nums[j] && nums[j] > nums[k] && nums[i] < nums[k]){
                        count++;
                    }
                }
            }
        }
        return count;
    }

    /**
     * 给定一个数组nums,给定窗口大小,和每次移动的step,
     * 求每个窗口中的最大值
     * 通过60%,不知道为什么通过不了
     * @param nums  数组
     * @param windowSize 窗口大小
     * @param step 跳步
     * @return
     */
    public int[] slideWindow (int[] nums, int windowSize, int step) {
        // write code here
        if(nums == null || nums.length == 0)
            return new int[0];
        if(nums.length == 1) return nums;
        int len = nums.length;
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < len; i += step) {
            int maxVal = nums[i];
            for (int j = i; j < len && j < windowSize + i; j++) {
                maxVal = Math.max(maxVal, nums[j]);
            }
            list.add(maxVal);
        }
        int[] res = new int[list.size()];
        for (int i = 0; i < list.size(); i++) {
            res[i] = list.get(i);
        }
        return res;
    }
}


#ZOOM##笔试题目#
全部评论
我也是60%😅,也没显示超时什么的啊,就是过不了
1 回复 分享
发布于 2021-08-28 18:04
第二题60,说null错误,不知道是不是卡了特例
点赞 回复 分享
发布于 2021-08-28 21:14
经运行验证,第二题的结果是错的。应该把第一层for循环的判断条件设置成i < len-1
点赞 回复 分享
发布于 2021-11-25 22:46

相关推荐

10-24 11:10
山西大学 Java
若梦难了:哥们,面试挂是很正常的。我大中厂终面挂,加起来快10次了,继续努力吧。
点赞 评论 收藏
分享
评论
点赞
6
分享
牛客网
牛客企业服务