Uber 黑车 面经 九十分钟完成四题

Viewed 109

一道简单,两道中等,一道难题

[简单]

给定一个整数数组:

  • 如果 偶数索引(0、2、4 …)位置上的整数之和大于 奇数索引(1、3、5 …)位置上的整数之和,返回 "EVEN"
  • 如果奇数索引之和更大,返回 "ODD"
  • 若两者相等,则返回 "EQUAL"

[中等]

给定一个整数矩阵,求最长对角线(主对角线和副对角线都算)中满足以下模式的长度:1, 2, 0, 2, 0, …,即索引 0 处是 1,之后 20 交替出现。

PS: 主对角线、副对角线都要考虑。


[中等]

已知四个长度为 N 的数组 winsdrawsscoredconceded

  • wins[i] 表示第 i 支球队的胜场数;
  • draws[i] 表示平局数;
  • scored[i] 表示进球数;
  • conceded[i] 表示丢球数(说实话我也不确定 conceded 的确切含义)。

计分规则:

  • 每场胜利得 3 分;
  • 每场平局得 1 分。

任务:找出 得分最高第二高 的球队索引。如果总分相同,则比较 scored[i] - conceded[i] 的差值来打破平分。

示例:

wins    : [1, 2, 3]
draws   : [1, 1, 1]
scored  : [10, 20, 30]
conceded: [12, 23, 12]

球队 0 的分数 = 13 + 11 = 4
球队 1 的分数 = 23 + 11 = 7
球队 2 的分数 = 33 + 11 = 10

返回 {2, 1}

PS: 如果球队积分相同,用 scored[i] - conceded[i] 来决定高低。


[困难]

给定矩阵的 rowscols,以及一个列表,列出值为 1 的所有单元格坐标(其余单元格值为 0)。

输出一个长度为 5 的向量,第 i 个元素表示拥有 i 个 12×2 子矩阵 的数量。

约束:

  • 2 ≤ rows ≤ 1e5
  • 2 ≤ cols ≤ 1e5

PS: 不能暴力检查所有 2×2 子矩阵,否则会超时 (TLE)。

0 Answers