12
返回列表 发新帖
楼主: 匿名
跳转到指定楼层
上一主题 下一主题
收起左侧

【面试经验】黑车新鲜OA

地里匿名用户
🔗
匿名用户-GIGKH  2021-3-8 04:58:14
Baby2021 发表于 2021-3-7 06:11
2. 给两个String[], 检查是否第二个String[]里所有的String都是第一个String[]里 0 到 某个element的concat ...

有可能的,a中一个或多个
回复

使用道具 举报

🔗
whiteboard 2021-3-15 22:59:11 | 只看该作者
全局:
第3题,brute force需要 O((rows * cols)^2),以下解法O(rows * cols)

  1. //Time O(rows * cols)
  2. vector<int> max_k_submatrix(vector<vector<int>> &matrix, int k)
  3. {
  4.     int rows = matrix.size(), cols = matrix[0].size();
  5.     vector<vector<int>> k_row_sum(rows - k + 1, vector<int>(cols, 0));

  6.     //滚动算k rows的和,0..k-1, 1..k, 2..k+1 ...., 将二维问题转化为一维问题
  7.     for (int r = 0; r < k_row_sum.size(); r++) {
  8.         for (int c = 0; c < cols; c++) {
  9.             if (r < k)
  10.                 k_row_sum[0][c] += matrix[r][c];
  11.             else
  12.                 k_row_sum[r - k + 1][c] = k_row_sum[r-k][c] + matrix[r][c] - matrix[r-k][c];
  13.         }   
  14.     }

  15.     vector<vector<int>> max_k_sum_index;

  16.     int max_sum = INT_MIN;
  17.     for (int r = 0; r < k_row_sum.size(); r++) {   
  18.         int sum = 0;
  19.         int s = 0;
  20.         for (int c = 0; c < cols; c++) {
  21.             sum += k_row_sum[r][c];
  22.             if (c - s + 1 > k)
  23.                 sum -= k_row_sum[r][s++];
  24.             if (c - s + 1 == k && sum > max_sum) {
  25.                 max_sum = sum;
  26.                 max_k_sum_index.clear();
  27.                 max_k_sum_index.push_back({r, s});
  28.             } else if (c - s + 1 == k && sum == max_sum) {
  29.                 max_k_sum_index.push_back({r, s});
  30.             }   
  31.         }   
  32.     }

  33.     unordered_set<int> distinct_nums;

  34.     for (auto &index : max_k_sum_index) {
  35.         int r1 = index[0], c1 = index[1];
  36.         int r2 = index[0]+k-1, c2 = index[1]+k-1;

  37.         for (int r = r1; r <= r2; r++) {
  38.             for (int c = c1; c <= c2; c++) {
  39.                 distinct_nums.insert(matrix[r][c]);
  40.             }
  41.         }
  42.     }   

  43.     vector<int> result;
  44.     for (int num : distinct_nums)
  45.         result.push_back(num);

  46.     return result;
  47. }
复制代码

评分

参与人数 1大米 +1 收起 理由
metrical1 + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
whiteboard 2021-3-15 23:01:55 | 只看该作者
全局:
第4题,将数字revert后,接着就是brute force O(N^2)的解法吧,有更优解吗?
回复

使用道具 举报

🔗
HenryXPHB 2021-4-5 01:09:39 | 只看该作者
全局:
cosimo23 发表于 2021-3-6 12:14
请问Q4  是指 int[] num: [12, 34] => 12+43 = 34+21 ?  count =1

i <= j的话 每个数本身都是可以的吧 难道不是3?
回复

使用道具 举报

🔗
metrical1 2021-4-5 08:24:19 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Popular Interview Questions from Top Companies
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表