第192场周赛

第 192 场周赛

  • 5428. 重新排列数组
  • 5429. 数组中的 k 个最强值
  • 5430. 设计浏览器历史记录

5428. 重新排列数组

class Solution {
    public int[] shuffle(int[] nums, int n) {
        if(nums==null || nums.length<=n) {
    		return nums;
    	}
    	int len = nums.length;
    	int[] res = new int[len];
    	int index = 0;
    	for(int i=0;i<n;i++) {
    		res[index]=nums[i];
    		res[index+1]=nums[i+n];
    		index=index+2;
    	}
    	return res;
    }
}

5429. 数组中的 k 个最强值

class Solution {
    public int[] getStrongest(int[] arr, int k) {
        int len = arr.length;
    	Integer[] sortNums = new Integer[len];
    	for(int i=0;i<len;i++) {
    		sortNums[i]=arr[i];
    	}
    	Arrays.sort(sortNums);
    	
    	
    	int mid = sortNums[(len-1)/2];
    	Arrays.sort(sortNums,new Comparator<Integer>() {

			@Override
			public int compare(Integer o1, Integer o2) {
				// TODO Auto-generated method stub
				if(Math.abs(o1-mid)!=Math.abs(o2-mid)) {
					return Math.abs(o2-mid)-Math.abs(o1-mid);
				}
				return o2-o1;
			}
    		
    	});
 
    	
    	int[] res = new int[k];
    	for(int i=0;i<k;i++) {
    		res[i]= sortNums[i];
    	}
    	return res;

    }
}

5430. 设计浏览器历史记录

class BrowserHistory {
    Stack<String> backWebs;
    Stack<String> forwardWebs;
    
    public BrowserHistory(String homepage) {
        backWebs = new Stack<String>();
        forwardWebs = new Stack<String>();
        backWebs.push(homepage);
    }
    
    public void visit(String url) {
        backWebs.push(url);
        forwardWebs = new Stack<String>();
    }
    
    public String back(int steps) {

        steps = steps>(backWebs.size()-1)?(backWebs.size()-1):steps;
        
        for(int i=0;i<steps;i++){
            String curWeb = backWebs.pop();
            forwardWebs.push(curWeb);
        }
       // System.out.println(backWebs.peek());
        return backWebs.peek();
       
    }
    
    public String forward(int steps) {
        
        if(forwardWebs.isEmpty()){
            //System.out.println(backWebs.peek());
            return backWebs.peek();
        }
        steps = steps>forwardWebs.size()?forwardWebs.size():steps;
        for(int i=0;i<steps;i++){
            String curWeb = forwardWebs.pop();
            backWebs.push(curWeb);
        }
       // System.out.println(backWebs.peek());
        return backWebs.peek();
    }
}

/**
 * Your BrowserHistory object will be instantiated and called as such:
 * BrowserHistory obj = new BrowserHistory(homepage);
 * obj.visit(url);
 * String param_2 = obj.back(steps);
 * String param_3 = obj.forward(steps);
 */

在这里插入图片描述

虽然今天名次不是很好,但是连续3次周赛在1.5h内把三道题做出来了,继续保持。
这周前3道题目都比较简单,第3题这种类型的题目做的比较少,虽然简单,但意外的花了很长时间,然后就剩下一点点时间看第4题,然而没看懂就放弃了。平时练习的时候要开始刷刷难度为困难的题目,不然周赛一直不会有进步。

你可能感兴趣的:(LeetCode)