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

谷歌实习电面

🔗
 楼主| NavierStoke 2019-10-17 22:22:09 | 只看该作者
全局:
gxy200992243 发表于 2019-10-17 01:40
兄弟,我从2011年开始研究navier stokes equations,到今天也要转行了

可以的,我三年就坚持不下去了
回复

使用道具 举报

🔗
ncy 2019-10-18 02:27:18 | 只看该作者
全局:
第一题写了一下,one pass O(n)

  1. void wigglesort(vector<int>& nums){
  2.         if(nums.empty())
  3.             return;

  4.         vector<bool> sorted(nums.size());
  5.         sorted[0] = true;
  6.         int pre = 0;

  7.         for(int i=0; i<nums.size(); ++i){
  8.             if(sorted[i])
  9.                 continue;
  10.             pre = i;

  11.             while(pre < nums.size() && !sorted[pre]){
  12.                 if(pre < nums.size()/2) {
  13.                     swap(nums, i, 2 * pre);
  14.                     pre = 2 * pre;
  15.                 }
  16.                 else {
  17.                     swap(nums, i, 1 + 2 * (pre - nums.size() / 2 ));
  18.                     pre = 1 + 2 * (pre - nums.size() / 2 );
  19.                 }

  20.                 sorted[pre] = true;


  21.             }

  22.         }

  23.     }

  24.     void swap(vector<int>& nums, int i, int j){
  25.         int tmp = nums[i];
  26.         nums[i] = nums[j];
  27.         nums[j] = tmp;
  28.     }
复制代码
回复

使用道具 举报

🔗
mierdalol 2019-10-18 03:32:16 | 只看该作者
全局:
NavierStoke 发表于 2019-10-17 09:22
可以的,我三年就坚持不下去了

NS方程这个鸟东西我觉得再给人类200年也搞不出来
回复

使用道具 举报

🔗
 楼主| NavierStoke 2019-10-18 03:47:40 | 只看该作者
全局:
gxy200992243 发表于 2019-10-18 03:32
NS方程这个鸟东西我觉得再给人类200年也搞不出来

我倒不这么看,因为我觉得人类已经没有200年了哈哈哈
回复

使用道具 举报

🔗
__jind 2019-10-18 10:41:09 | 只看该作者
全局:
第一轮:
  1. class Solution():
  2.     def fun(self, nums):
  3.         # have two points, p0 points to 'a' with step 2,  p1 points to 'b' with step 1
  4.         p0 = 0
  5.         p1 = len(nums) // 2

  6.         while p1 < len(nums) - 1:
  7.             # remember p1, and move every element from p0 + 1 to p1 - 1 one step further
  8.             temp = nums[p1]
  9.             for i in range(p1-1, p0, -1):
  10.                 nums[i + 1] = nums[i]

  11.             # p0 + 1 = remember
  12.             nums[p0+1] = temp

  13.             # p0 += 2, p1 += 1
  14.             p0 += 2
  15.             p1 += 1
  16.         return nums

  17. a = Solution()
  18. print(a.fun([1,3,5,2,4,6]))
复制代码

第二轮第一题: LeetCode有
第二轮第二题: 不重叠, 麻烦的做法
  1. class Solution():
  2.     def max_repeating(self, s):
  3.         p = 0
  4.         length = len(s)
  5.         max_s = ''
  6.         while p < length:

  7.             # check i in range [p, (length-p)//2   ]
  8.             # i means that our maximum length of our basic repeating element
  9.             # ('baba', basic repeating element is 'ba')
  10.             # , which is our left element // 2
  11.             for i in range(0, (length-p)//2 ):
  12.                 # check if s[p:i+1] == s[i+1: i-p+1]
  13.                 # continuous check if it will appear 3 times
  14.                 count = 1
  15.                 diff = i + 1
  16.                 start = p
  17.                 while s[start:start+diff] == s[start+diff:start+diff*2]:
  18.                     count += 1
  19.                     start += diff
  20.                 if count > 1:
  21.                     if count * diff > len(max_s):
  22.                         # record max_s
  23.                         max_s = s[p:p+count*diff]
  24.             p += 1

  25.         return max_s

  26. a = Solution()
  27. print(a.max_repeating("aaaaaaaxxxxbcbcbc"))

  28. print(a.max_repeating("abc"))
复制代码
回复

使用道具 举报

🔗
lma 2019-10-18 12:30:16 | 只看该作者
全局:
ncy 发表于 2019-10-18 02:27
第一题写了一下,one pass O(n)

[mw_shl_code=cpp,true]void wigglesort(vector& nums){

大佬可以讲一下思路吗..?= =看不太懂...谢谢谢谢!!
回复

使用道具 举报

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

使用道具 举报

🔗
lma 2019-10-18 13:33:19 | 只看该作者
全局:
ncy 发表于 2019-10-18 12:37
就是前半部分index为i的数应该交换到2*i, 后半部分i应该交换到1+2*(i-size/2)
举例子:
number:   a1  ...

哦哦哦讲得好清楚!!谢谢您!!
回复

使用道具 举报

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

使用道具 举报

🔗
ncy 2019-10-19 01:34:44 来自APP | 只看该作者
全局:
记忆中的微光 发表于 2019/10/19 01:30:01

这题要求in-place做出来诶,这个解法额外花了空间吧~
这个解法是in-place呀,你说的额外空间是指swap? 一般in-place都是会允许额外O(1)空间的
回复

使用道具 举报

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

本版积分规则

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