跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 想问参加过面试的大佬们有什么感想?最近刷大厂的面试题,一个比一个难……
未分類
11 3 月 2021

想问参加过面试的大佬们有什么感想?最近刷大厂的面试题,一个比一个难……

想问参加过面试的大佬们有什么感想?最近刷大厂的面试题,一个比一个难……

資深大佬 : zzzrf 1

最近刷大厂的面试题,发现一个比一个难,不知道参加过面试的人是什么感觉。

做了一个京东面试题,我第一遍愣是啥都没看懂,做了半天……

  public int twoColorsTower(int red, int green) {         if (red == 0 || green == 0) {             return 1;         }          if (red > green) {             int temp = red;             red = green;             green = temp;         }         // dp[i&1][j]表示前 i 层一共放 j 个红石头         int[][] dp = new int[2][red + 1];         dp[1][0] = dp[1][1] = 1;         int level = (int) Math.sqrt(2 * (red + green));         int sum = 1, lower = 0, upper = red;         int curr = 1, prev;         int MOD = (int) 1.0e9 + 7;                  for (int i = 2; i <= level; i++) {             sum += i;             int tmpUpper = Math.min(sum, red);             int tmpLower = Math.max(sum - green, 0);             // 红石头不够了,已经是最高层,停止更新             if (tmpLower > tmpUpper) break;             upper = tmpUpper;             lower = tmpLower;             prev = curr;             curr = curr ^ 1;              // j 小于本层 i,红石只能是之前都放完了             for (int j = lower; j < i; j++) {                 dp[curr][j] = dp[prev][j];             }             // 转移方程:dp[i][j] = dp[i-1][j] + dp[i-1][j-i] (when j>=i)             // dp[i-1][j]表示第 i 层放绿石 dp[i-1][j-i]表示 i 层放红石             for (int j = i; j <= upper; j++) {                 dp[curr][j] = (dp[prev][j] + dp[prev][j - i]) % MOD;             }         }         int ans = 0;         for (int j = lower; j <= upper; j++) {             ans = (ans + dp[curr][j]) % MOD;         }         return ans;     } 

[这里是题目原地址]

大佬有話說 (0)

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具