本文主要是介绍第188场周赛,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第188场周赛
- 5404. 用栈操作构建数组
- 5405. 形成两个异或相等数组的三元组数目
- 5406. 收集树上所有苹果的最少时间
5404. 用栈操作构建数组
class Solution {public List<String> buildArray(int[] target, int n) {List<String> res = new ArrayList<String>();int len = target.length;int max = target[len-1];if(max>n) {return res;}int i=0;int cur=1;while(cur<=max) {if(cur<target[i]) {res.add("Push");res.add("Pop");cur++;}else {res.add("Push");i++;cur++;}}return res;}
}
5405. 形成两个异或相等数组的三元组数目
class Solution {public int countTriplets(int[] arr) {int len = arr.length;int left;int right;int count = 0;for(int i=0;i<arr.length-1;i++) {left=arr[i];for(int j=i+1;j<arr.length;j++) {//左边结束//右边开始right = arr[j];if(left==right) {count++;}int k=j+1;while(k<arr.length) {right^=arr[k];if(left==right) {count++;}k++;}left^=arr[j];}}return count;}
}
5406. 收集树上所有苹果的最少时间
class Solution {Map<Integer,Integer> maps = new HashMap<Integer,Integer>();Set<Integer> visited = new HashSet<Integer>();int res=0;public int minTime(int n, int[][] edges, List<Boolean> hasApple) {List<Integer> apples = new ArrayList<Integer>();for(int i=0;i<hasApple.size();i++) {if(hasApple.get(i)==true) {apples.add(i);}}for(int i=0;i<edges.length;i++) {maps.put(edges[i][1],edges[i][0]);}visited.add(0);for(Integer cur:apples) {find(cur);}return res*2;}private void find(Integer cur) {// TODO Auto-generated method stubif(visited.contains(cur)) {return;}res++;visited.add(cur);find(maps.get(cur));}
}
这篇关于第188场周赛的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!