楼主: kennynoodlehous
跳转到指定楼层
上一主题 下一主题
收起左侧

GOOGLE ONSITE9/29

🔗
AndyLiu0429 2015-11-13 03:03:51 | 只看该作者
全局:
第二题可以这么dp: 求str和翻转str的longest common subsequence,然后剩下的部分就是必须要删的
回复

使用道具 举报

🔗
nothingtrouble 2015-11-13 23:21:59 | 只看该作者
全局:
第二题确实是面筋题,如果理解没错的话,第二题应该是求longest palindrome subsequence的变形。如果求出subsequence的长度,那么要删除的chars就是 total - len(longest Palindrome Subsequence)

http://www.geeksforgeeks.org/dynamic-programming-set-12-longest-palindromic-subsequence/
回复

使用道具 举报

🔗
bobzhang2004 2015-12-9 08:13:57 | 只看该作者
全局:
nothingtrouble 发表于 2015-11-13 23:21
第二题确实是面筋题,如果理解没错的话,第二题应该是求longest palindrome subsequence的变形。如果求出su ...

应该是这样的,写了下代码。
  1. public class LongestPalindromicSubsequenceByDeleting {
  2.        
  3.         public static void main(String[] args) {
  4.                 String s = "abcdesc";
  5.                 System.out.println(leastCharacterDeleted(s));
  6.         }
  7.        
  8.         public static int leastCharacterDeleted(String str) {
  9.                 int len = getLongestPalindromicSubsequence(str);
  10.                 return str.length() - len;
  11.         }

  12.         public static int getLongestPalindromicSubsequence(String str) {
  13.                 if (str == null || str.length() == 0) {
  14.                         return 0;
  15.                 }
  16.                 int len = str.length();
  17.                 int[][] dp = new int[len][len];
  18.                 for (int i = 0; i < len; i++) {
  19.                         dp[i][i] = 1;
  20.                 }
  21.                 for (int cl = 2; cl <= len; cl++) {
  22.                         for (int i = 0; i < len - cl + 1; i++) {
  23.                                 int j = i + cl - 1;
  24.                                 if (str.charAt(i) == str.charAt(j) && cl == 2) {
  25.                                         dp[i][j] = 2;
  26.                                 } else if (str.charAt(i) == str.charAt(j)) {
  27.                                         dp[i][j] = dp[i + 1][j - 1] + 2;
  28.                                 } else {
  29.                                         dp[i][j] = Math.max(dp[i + 1][j], dp[i][j - 1]);
  30.                                 }
  31.                         }
  32.                 }
  33.                
  34.                 return dp[0][len - 1];
  35.         }
  36. }
复制代码
回复

使用道具 举报

🔗
rjr130 2015-12-9 08:22:28 | 只看该作者
全局:
面我的第一个华人面试官告诉我Java的HashMap没有remove function,别自己乱想一个乱用=。=我也是呵呵了,最后也是栽在他手上了,无话可说
回复

使用道具 举报

🔗
bobzhang2004 2015-12-9 11:10:36 | 只看该作者
全局:
bill701 发表于 2015-11-12 12:48
第四题可不可以利用数学的思想呢?char的话就把他映射到1-256上。分别对两个str算出他们各自的乘积和相加的 ...

你这个应该可以,不过直接hashmap或者array[]不就是可以了,都是O(1)space和O(n)time啊
回复

使用道具 举报

🔗
bobzhang2004 2015-12-9 11:18:43 | 只看该作者
全局:
请问第三题O(1)SPACE记录路径如何做,是改变原矩阵?
回复

使用道具 举报

🔗
 楼主| kennynoodlehous 2015-12-9 11:41:36 | 只看该作者
全局:
bobzhang2004 发表于 2015-12-9 11:18
请问第三题O(1)SPACE记录路径如何做,是改变原矩阵?

这么久我哪记得 。。大概是你从左边来2D ARRAY的VALUE就变成负的。。
回复

使用道具 举报

🔗
aiwojiujiu 2016-1-23 21:51:35 | 只看该作者
全局:
楼主为啥没有店面呢? CMU的?
回复

使用道具 举报

🔗
 楼主| kennynoodlehous 2016-1-24 03:05:58 | 只看该作者
全局:
aiwojiujiu 发表于 2016-1-23 21:51
楼主为啥没有店面呢? CMU的?

实习有GG的OFFER 免电面的 然并卵哟
回复

使用道具 举报

🔗
aiwojiujiu 2016-1-24 09:02:01 | 只看该作者
全局:
majiamajia 发表于 2016-1-24 03:05
实习有GG的OFFER 免电面的 然并卵哟

楼主遇到三哥  没办法  来年再搞!!!
回复

使用道具 举报

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

本版积分规则

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