第 188 场力扣周赛题解

啥时候能稳定啊,一遇到内推场就是神仙打架。第 188 场力扣周赛题解_第1张图片

5404. 用栈操作构建数组

题目链接:https://leetcode-cn.com/contest/weekly-contest-188/problems/build-an-array-with-stack-operations/

思路:判断target[i]是否等于当前list的首元素即可,不是的话,就执行先加入后弹出操作,否则只执行push操作。

class Solution {
    public List buildArray(int[] target, int n) {
    	
    	int num=1;
    	List list=new ArrayList<>();
    	
    	for(int i=0;inum) {
    			num++;
    			list.add("Push");
    			list.add("Pop");
    		}
    		num++;
    		list.add("Push");
    	}
    	
    	return list;
    }
}

5405. 形成两个异或相等数组的三元组数目

题目链接:https://leetcode-cn.com/contest/weekly-contest-188/problems/count-triplets-that-can-form-two-arrays-of-equal-xor/

思路:考察异或的简单性质:a^b=c等价于a^c=b,依靠这一性质我们可以预处理出来前缀异或和从而方便求出任意区间的异或和,之后暴力i,j,k的值即可。

class Solution {
    public int countTriplets(int[] arr) {
    	
    	int ans=0;
    	int n=arr.length;
    	int[] sum=new int[n];
    	
    	sum[0]=arr[0];
    	for(int i=1;i

5406. 收集树上所有苹果的最少时间

题目链接:https://leetcode-cn.com/contest/weekly-contest-188/problems/minimum-time-to-collect-all-apples-in-a-tree/

思路:对于树上的每个节点,我们走到它的唯一可能是该节点或者该节点为根的子树中有苹果。若子树中有苹果,并且不止一个,则最优的方法一定是先把这个子树里的苹果摘完再回去。若该子树已经摘完了,为了不影响答案,我们将这个子树缩为一个点后往上遍历就ok了,这是我的做法。

class Solution {
	
	int n;
	int ans;
	boolean[] mark;
	List> list;
	
    public int minTime(int n, int[][] edges, List hasApple) {
        
    	ans=0;
    	this.n=n;
    	mark=new boolean[n];
    	list=new ArrayList<>();
    	
    	for(int i=0;i());
    		mark[i]=hasApple.get(i);
    	}
    	
    	for(int i=0;i0) {
    		ans+=res*2;
    		return 1;
    	}
    	if(mark[u]) return 1;
    	return 0;
    }
}

5407. 切披萨的方案数

题目链接:https://leetcode-cn.com/contest/weekly-contest-188/problems/number-of-ways-of-cutting-a-pizza/

思路:我们定义dp[i][j][k]:表示剩下的大小为i*j的披萨块并且还剩下k次没切的方案数。之后可以采用记忆化搜索暴力。

class Solution {
	
	long[][][] dp;
	private int mod=1000000007;
	
    public int ways(String[] pizza, int k) {
    	
    	int sum=0;
    	int m=pizza.length;
    	int n=pizza[0].length();
    	dp=new long[m+1][n+1][k];
    	for(int i=0;i

 

你可能感兴趣的:(第 188 场力扣周赛题解)