秋招第二场的笔试,下午4点开始的;投的后端,已经做的是美团的第二次笔试了。(上一次笔试是春招的最后一场)
和上次一样,这次的笔试题目还是简单的。
1 <= n <= 1e5, 1 <= t <= 100, 订单的送达时间介于[1, 1e7]之间保证2 <= n, m <= 100, 指令长度 <= 1000001<=n<=100000 public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; ++i) {
nums[i] = in.nextInt();
}
if (n < 3) {
for (int i = 0; i < n; ++i) {
System.out.print(nums[i] + " ");
}
return;
}
// int[] res = new int[n];
LinkedList<Integer> linkedList = new LinkedList<>();
for (int i = n - 1; i >= 0; --i) {
linkedList.addFirst(nums[i]);
linkedList.addFirst(linkedList.removeLast());
linkedList.addFirst(linkedList.removeLast());
}
// 题目操作顺序:
//for (int i = 0; i < n; ++i) {
// linkedList.addLast(linkedList.removeFirst());
// linkedList.addLast(linkedList.removeFirst());
// res[i] = linkedList.removeFirst();
// System.out.print(res[i] + " ");
//}
for (Integer integer : linkedList) {
System.out.print(integer + " ");
}
}1<=n<=4000, 0<=a[i]<=1000000 public static void main(String[] args) {
// a[i] = 3a[j] - a[k]
// 枚举 a[i] 和 a[j] ,算出 a[k] = 3a[j] - a[i], map 中找 ?
// On^3, 91%
Scanner in = new Scanner(System.in);
int n = in.nextInt();
HashMap<Integer, List<Integer>> map = new HashMap<>();
int[] nums = new int[n];
int num;
for (int i = 0; i < n; ++i) {
num = in.nextInt();
nums[i] = num;
List<Integer> index = map.getOrDefault(num, new ArrayList<>());
index.add(i);
map.put(num, index);
}
int res = 0;
for (int i = 0; i < n; ++i) {
int num1 = nums[i];
for (int j = i + 1; j < n; ++j) {
int target = ((nums[j] << 1) + nums[j]) - num1;
List<Integer> index = map.get(target);
if (index != null) {
for (Integer k : index) {
if (k > j) {
++res;
}
}
}
}
}
System.out.println(res);
}1 <= n <= 100000,我记得在力扣上做过类似的,是这一道题124. 二叉树中的最大路径和。不同的是,力扣上的还有负值,但是解决方法几乎一样。