找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 994|回复: 3
收起左侧

[讨论] 48题:怀疑题目的 sample 有错误。

[复制链接]

4

主题

0

精华

54

积分

资深会员

Rank: 2

积分
54
发表于 3-2-2016 05:39 PM | 显示全部楼层 |阅读模式

亲!马上注册或者登录会查看更多内容!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
题目链接: http://www.meetcoder.com/problem.php?id=48

题目要求 x + y is less than C,应该是小于不等于。


测试 input 中,x 取自 {0,1},y 取自 {0,1}, c 等于 0。只有 x = 0, y = 0 时才有 x+y < c。测试 out 应为 1/4,而不是1/2。


我按照我的理解写出来的code可以通过我自己的test case,但提交会报错。希望大神们帮我看看,谢谢!


  1. class Solution {
  2.     public int[]  calculate(int a,int b,int c) {
  3.         int [] ret = new int[2];
  4.     int l = Math.max(a, b);
  5.     int s = Math.min(a, b);
  6.     int total = (l+1) * (s+1);
  7.     int count = 0;
  8.     if (c > s+l) {
  9.         count = total;
  10.     }else if ( c <= s ) {
  11.         count = (s+1) * s / 2;
  12.     } else if( c <= l) {
  13.         count = (s+1) * s / 2 + (c-s) * (s+1);
  14.     } else {
  15.         count = total - (l+s-c+2) * (l+s-c+1) / 2;
  16.     }
  17.      
  18.     int gcd = gcd(total, count);
  19.     ret[0] = count / gcd;
  20.     ret[1] = total / gcd;
  21.     return ret;
  22.     }
  23.      
  24.     int gcd(int a, int b) {
  25.         int c = a % b;
  26.         if ( c == 0 )
  27.             return b;
  28.         else
  29.             return gcd(b, c);
  30.     }
  31. }
复制代码


0

主题

0

精华

11

积分

新米人

Rank: 1

积分
11
发表于 3-13-2016 12:01 AM 来自美国米群网手机版 | 显示全部楼层
确实不错,顶先
回复 支持 反对

使用道具 举报

0

主题

0

精华

0

积分

新米人

Rank: 1

积分
0
发表于 3-13-2016 02:05 PM 来自美国米群网手机版 | 显示全部楼层
看起来不错
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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