📣 独立日限时特惠: VIP通行证立减$68
楼主: cynthiazp
跳转到指定楼层
上一主题 下一主题
收起左侧

脸家加面,似乎他家最近新题很多?

🔗
mameko 2017-8-4 19:35:03 | 只看该作者
全局:
twosumii 发表于 2017-8-4 07:27
并不是新题,你刷的不够 >

层主two pointer玩得出神入化,钦佩。我一开始也想歪了,往subset上想。
回复

使用道具 举报

🔗
stealop 2017-8-4 22:34:23 | 只看该作者
全局:
Darkduke68 发表于 2017-8-4 11:25
two pointers 正解。 不过 while 条件我觉得应该是i

双指针做不了吧, 需要 递归
比如 k = 10

当前是 1, 2, 3, 8
1 + 8 = 9 < 10 那么按照你的 code就是 先求出以 1, 8 为边界的集合总数, 然后 把 左边的指针指向 2

但是这样的话 [1, 3] (以1, 3 为边界)的情况 就被 skip了
回复

使用道具 举报

🔗
stealop 2017-8-4 22:35:34 | 只看该作者
全局:
stealop 发表于 2017-8-4 22:34
双指针做不了吧, 需要 递归
比如 k = 10

所以 如果 s[i] + s[j] < K的 话, 需要 考虑两种情况, 一种是 i++, 另一种是 j--
回复

使用道具 举报

🔗
twosumii 2017-8-5 00:28:33 | 只看该作者
全局:
mameko 发表于 2017-8-4 19:35
层主two pointer玩得出神入化,钦佩。我一开始也想歪了,往subset上想。

哈哈,可是你拿了offer我挂了,呜呜
回复

使用道具 举报

🔗
 楼主| cynthiazp 2017-8-5 01:34:13 | 只看该作者
全局:
twosumii 发表于 2017-8-5 00:28
哈哈,可是你拿了offer我挂了,呜呜

以前有个大神的id叫twosum, 不知层主是不是他小号?
回复

使用道具 举报

🔗
twosumii 2017-8-5 03:32:51 | 只看该作者
全局:
cynthiazp 发表于 2017-8-5 01:34
以前有个大神的id叫twosum, 不知层主是不是他小号?

是吗?不是啦,,我是看twosum被注册了...就换个题。
回复

使用道具 举报

🔗
knight0clk 2017-8-5 10:00:04 | 只看该作者
全局:
stealop 发表于 2017-8-4 22:34
双指针做不了吧, 需要 递归
比如 k = 10

感觉第二题被玩坏了,这个不是two pointer,但是不需要递归的,因为他只让你求几种方法
回复

使用道具 举报

🔗
edyyy 2017-8-5 11:00:46 | 只看该作者
全局:
数一数有多少个子集(subset)使得子集里面的最大元素加上最小元素小于K。
A: [2, 3, 5, 7]  K: 8
=> # of subsets S: Max(S) + Min(S) < K
=> [2] , [2, 3], [2, 5], [2, 3, 5], [3] => #: 5
在集合[3]里面算有几个数?一个?
回复

使用道具 举报

🔗
真淘蛮 2017-8-5 13:17:28 | 只看该作者
全局:
Darkduke68 发表于 2017-8-4 11:25
two pointers 正解。 不过 while 条件我觉得应该是i

循环内得再加一个判断吧?
if (i  == j) {
if (s[i] < k) res++;
return res;
}
回复

使用道具 举报

🔗
pomme2016 2017-8-5 13:27:48 | 只看该作者
全局:
我自己想一开始用的DP,然后发现真的可以双指针呢。
感觉下面写的代码是对的,跑了几个test case

  1. public int subarraySum(int[] nums, int K) {
  2.         if (nums == null || nums.length == 0 || nums[0] * 2 >= K) {
  3.             return 0;
  4.         }
  5.         int sum = 0, i = 0, j = nums.length - 1;
  6.         while (i <= j) {
  7.             if (nums[i] + nums[j] < K) {
  8.                 sum += (int)Math.pow(2, j - i);
  9.                 i++;
  10.             } else {
  11.                 j--;
  12.             }            
  13.         }
  14.         return sum;
  15.     }
复制代码
回复

使用道具 举报

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

本版积分规则

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