Zoom——Android客户端开发笔试编程题
Zoom——Android客户端开发笔试编程题
#ZOOM##笔试题目#
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; } }