首页 > Zoom——Android客户端开发笔试编程题
头像
梦否
发布于 2021-08-28 18:03
+ 关注

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;
    }
}


全部评论

(3) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐