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

7/27 布鲁伯格 电面跪筋

🔗
hnyjy 2016-7-31 22:54:09 | 只看该作者
全局:
xihaokai1 发表于 2016-7-31 22:41
第一题应该是O(n)就能做。 大致意思是这样:从第一个1(head)开始往后面延伸,碰到0就翻直到用完k次(记录 ...

8个应该只是个例子吧,是吗?
回复

使用道具 举报

🔗
xihaokai1 2016-7-31 22:56:17 | 只看该作者
全局:
hnyjy 发表于 2016-7-31 22:54
8个应该只是个例子吧,是吗?

嗯,8个, n个,道理时一样的嘛
回复

使用道具 举报

🔗
hnyjy 2016-7-31 23:18:14 | 只看该作者
全局:
xihaokai1 发表于 2016-7-31 22:56
嗯,8个, n个,道理时一样的嘛

嘻嘻,我的意思是dp要记录的是股票的数量,而不是数组的size哦,对吧~
回复

使用道具 举报

🔗
何打发123 2016-8-1 01:08:23 | 只看该作者
全局:
感谢楼主分享 不过感觉被黑了 希望碰见国人亲大哥啊
回复

使用道具 举报

🔗
jy_121 2016-8-1 01:52:36 | 只看该作者
全局:
哪位同学能详细说下dp的解法啊。谢谢了
回复

使用道具 举报

🔗
何打发123 2016-8-1 03:06:17 | 只看该作者
全局:
jy_121 发表于 2016-8-1 01:52
哪位同学能详细说下dp的解法啊。谢谢了

写了一个 感觉像背包问题~
  1. class Solution {
  2.         public int getMaxProfit(int[] arr){
  3.                 if(arr == null || arr.length == 0) return 0;
  4.                 int[] dp = new int[arr.length + 1];
  5.                
  6.                
  7.                 for(int i = 1; i <= arr.length; i++){
  8.                         dp[i] = arr[i - 1];
  9.                         for(int j = 0; j <= i; j++){
  10.                                 dp[i] = Math.max(dp[i], dp[i - j] + dp[j]);
  11.                         }
  12.                 }
  13.                 return dp[arr.length];
  14.         }
  15.        
  16.         public static void main(String[] args) {
  17.                 Solution r = new Solution();
  18.                 int[] arr = {1, 4, 7, 9,12, 3,15,20};
  19.                 int max = r.getMaxProfit(arr);
  20.                 System.out.println(max);
  21.         }
  22. }
复制代码
回复

使用道具 举报

🔗
cicean 2016-9-13 07:05:03 | 只看该作者
全局:
http://www.geeksforgeeks.org/find-index-0-replaced-1-get-longest-continuous-sequence-1s-binary-array/
http://www.geeksforgeeks.org/find-zeroes-to-be-flipped-so-that-number-of-consecutive-1s-is-maximized/

感觉可以参考下这个 东西
回复

使用道具 举报

🔗
fay19 2016-9-18 22:55:29 | 只看该作者
全局:
感觉第二题有点像combination sum的变体...
回复

使用道具 举报

🔗
Neil_Acton 2016-9-19 04:19:43 | 只看该作者
全局:
Fustang 发表于 2016-7-29 04:48
第二题类似knapsack?

LZ别哭,继续加油噜

有轮电面?。。所以你有几轮电面呀
回复

使用道具 举报

🔗
iPhD 2016-9-19 07:03:17 | 只看该作者
全局:
第一题可以这样写?

public int kBinary(int[] arr, int k) {

        int maxLen = 0;
        Queue<Integer> zeroes = new LinkedList<Integer>();
        int left = -1, right = 0;

        while (right < arr.length) {

                if (arr[right] == 0) {

                        if (zeroes.size() == k) {
                                left = zeroes.poll();
                        }

                        zeroes.offer(right);
                        maxLen = Math.max(maxLen, right - left);

                }

                right++;
        }

        maxLen = Math.max(maxLen, arr.length - 1 - left);
        return maxLen;
}
回复

使用道具 举报

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

本版积分规则

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