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

[学Java/C#] 211這題怎麼理解,求解

全局:

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

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

x
  1. public class Solution {
  2.    
  3.     public int[][] multiply(int[][] A, int[][] B) {
  4.         
  5.         int m = A.length, n = A[0].length, nB = B[0].length;
  6.         
  7.         int[][] C = new int[m][nB];

  8.         for(int i = 0; i < m; i++) {
  9.             for(int k = 0; k < n; k++) {
  10.                
  11.                 if (A[i][k] != 0) {
  12.                     
  13.                     for (int j = 0; j < nB; j++) {
  14.                         
  15.                         if (B[k][j] != 0) C[i][j] += A[i][k] * B[k][j];
  16.                     }
  17.                     
  18.                 }
  19.             }
  20.         }
  21.         return C;   
  22.     }
  23. }
复制代码


上一篇:LeetCode 29 題防止overflow的問題
下一篇:Best Time to Buy and Sell Stock III
🔗
tamu123 2020-9-15 04:57:45 | 只看该作者
全局:
应该是311 题吧

        for(int i = 0; i < m; i++) {
            for(int k = 0; k < n; k++) {
                for (int j = 0; j < nB; j++)
                    C[i][j] += A[i][k] * B[k][j];
                // if (A[i][k] != 0) {
                //     for (int j = 0; j < nB; j++) {
                //         if (B[k][j] != 0)
                //             C[i][j] += A[i][k] * B[k][j];
                //     }
                // }
            }
        }

以上也是work的,只不过是time会慢一些,原因是我们没有做early termination。如果你能看懂这个的话,再尝试去想最优解。

early termination 是在你发的code里的第十二行。

hope it helps
回复

使用道具 举报

🔗
 楼主| zurich.hill 2020-9-15 07:05:45 | 只看该作者
全局:
tamu123 发表于 2020-9-15 04:57
应该是311 题吧

        for(int i = 0; i < m; i++) {

謝謝這位aggie
回复

使用道具 举报

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

本版积分规则

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