[leetcode] Weekly Contest 170 Summary
Posted 糖栗子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[leetcode] Weekly Contest 170 Summary相关的知识,希望对你有一定的参考价值。
Leetcode Solution
久违的空闲周末, 久违的周赛
昨天晚上把键盘ESC和Caps互相映射了一下, 导致今天打码卡手, 烦
总结
- 用java做周赛的话, 就有点太慢了, 两部分原因: 记不住; 语法罗嗦
以后写代码多记忆一下; 试试scala - PriorityQueue用法, 最好自己写个Pair:
PriorityQueue<Pair> que = new PriorityQueue<>();
que.poll();
que.add();
static class Pair {
@Override
public int compareTo(Pair p) {
return Integer.compare(x, p.x);
}
}
- 以后所有的排序就按stream+方法/lambda的方式吧
map.entrySet().stream()
.sorted(this::compare)
.map(Map.Entry::getKey)
.collect(Collectors.toList());
- 多用用
map.computeIfAbsent
,map.computeIfPresent
方法
5303. Decrypt String from Alphabet to Integer Mapping
## 5303. Decrypt String from Alphabet to Integer Mapping ### 思路 水题不写思路了 ### 要点 无 ### 代码 ```java class Solution { public String freqAlphabets(String s) { StringBuilder builder = new StringBuilder(); for (int i=0; i5304. XOR Queries of a Subarray
## 5304. XOR Queries of a Subarray ### 思路 异或前缀和 ### 要点 注意处理下标越界两种方式: 条件判断, 重定义数组大小 简单思考一下就行, 拿不准就条件判断, 免得浪费时间. ### 代码 ```java class Solution { public int[] xorQueries(int[] arr, int[][] queries) { int[] sum = new int[arr.length+1]; sum[1] = arr[0]; for (int i=2; i<=arr.length; i++) { sum[i] = sum[i-1] ^ arr[i-1]; System.out.println(sum[i]); } int size = 0; int[] ans = new int[queries.length]; for (int[] q: queries) ans[size++] = sum[q[1]+1] ^ sum[q[0]]; return ans; } } ```5305. Get Watched Videos by Your Friends
## 5305. Get Watched Videos by Your Friends ### 思路 脑子卡壳, 首先想了个错的dfs思路, 然后WA, 最后还是安心写最短路了-_- dijkstra按id求个最短路dist[], 然后Map记录, 最后排序就行. 其实还是个水题, 但是java写起来很卡手, 有些类记不起来, 得练练. ### 要点 1. PriorityQueue用法, 最好自己写个Pair: ```java PriorityQueue- > elem;
public List
- > watchedVideos, int[][] friends, int id, int level) {
this.next = friends;
this.elem = watchedVideos;
Map
以上是关于[leetcode] Weekly Contest 170 Summary的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode(Weekly Contest 183)题解