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

[Leetcode] LC907 Divide & Conquer Solution但过不了最后一个test case

🔗
koga | 只看该作者 |倒序浏览
全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
我看了半天,看不出问题在哪就是最后一个test case 过不了
  1. class Solution {
  2.     int MOD = 1000_000_007;
  3.     public int sumSubarrayMins(int[] A) {
  4.         return sumMins(A,0,A.length-1);
  5.     }
  6.     private int sumMins(int[] A, int s, int e){
  7.         if(s>e)
  8.             return 0;
  9.         if(s == e)
  10.             return A[s];
  11.         int minIdx = -1 , min = Integer.MAX_VALUE;
  12.         for(int i =s; i<= e;i++){
  13.             if(min > A[i]){
  14.                 minIdx = i;
  15.                 min = A[i];
  16.             }
  17.         }
  18.         System.out.println("s: "+s +" e: "+e + " min: "+min);
  19.         int N = e - s + 1, l = minIdx - s, r = e - minIdx;
  20.         int containMin = (int) ((f(N) - f(l) - f(r)) * min);
  21.         // System.out.println("minIdx "+ minIdx +" s: "+s +" e: "+e + " contain min : "+containMin);
  22.         return  (containMin + sumMins(A,s,minIdx-1) + sumMins(A,minIdx+1,e))%MOD;
  23.     }
  24.     private int f(int i){
  25.         return i*(i+1)/2;
  26.     }
  27. }
复制代码


上一篇:【加米!救救孩子】全天投入一天刷多少题算正常, 前200号题是不是简单的
下一篇:谷歌intern的LC tag题会遇到原题吗?
您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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