题目
-
- 盒子中小球的最大数量
2. 1743. 从相邻元素对还原数组
思路与算法
- 第一题简单的数数问题,python比较方便,使用str函数将数字转化为字符,然后直接累加比较即可。注意括号别写乱了
- 第二题为翻译题,不用花里胡哨的东西,直接翻译题意即可
代码实现
-
- 盒子中小球的最大数量
class Solution:
def countBalls(self, lowLimit: int, highLimit: int) -> int:
return max(Counter([sum([int(x) for x in str(num)]) for num in range(lowLimit,highLimit+1)]).values())
-
- 从相邻元素对还原数组
class Solution {
public int[] restoreArray(int[][] adjacentPairs) {
int len = adjacentPairs.length;
int[] res = new int[len + 1];
Map<Integer,List<Integer>> map = new HashMap<>();
for (int[] pair : adjacentPairs) {
int num1 = pair[0];
int num2 = pair[1];
map.computeIfAbsent(num1, k -> new ArrayList<>()).add(num2);
map.computeIfAbsent(num2, k -> new ArrayList<>()).add(num1);
}
for (int key : map.keySet()) {
if (map.get(key).size() == 1) {
res[0] = key;
break;
}
}
for (int i = 1; i <= len; i++) {
List<Integer> list = map.get(res[i-1]);
for (int num : list) {
if (map.containsKey(num)) {
res[i] = num;
break;
}
}
map.remove(res[i-1]);
}
return res;
}
}
写在最后
冲!