Swift   发布时间:2022-04-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了[Swift]LeetCode311. 稀疏矩阵相乘 $ Sparse Matrix Multiplication大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

Given two sparse matrices A and B,return the result of AB.

You may assume that A‘s column number is equal to B‘s row number.

Example:

A = [
  [ 1,0],[-1,3]
]

B = [
  [ 7,0 ],[ 0,1 ]
]

     |  1 0 0 |   | 7 0 0 |   |  7 0 0 |
AB = | -1 0 3 | x | 0 0 0 | = | -7 0 3 |
                  | 0 0 1 |

给定两个@L_262_1@A和B,返回AB的结果。 

您可以假定A的列号等于B的行号。

例子:

A = [
  [ 1,1 ]
]

     |  1 0 0 |   | 7 0 0 |   |  7 0 0 |
AB = | -1 0 3 | x | 0 0 0 | = | -7 0 3 |
                  | 0 0 1 |
Solution:
 1 class Solution {
 2     func multiply(_ A:inout [[Int]],_ B:inout [[Int]]) ->[[Int]] {
 3         var res:[[Int]] = [[Int]](repeaTing:[Int](repeaTing:0,count:B[0].count),count:A.count)
 4         for i in 0..<A.count
 5         {
 6             for k in 0..<A[0].count
 7             {
 8                 if A[i][k] != 0
 9                 {
10                     for j in 0..<B[0].count
11                     {
12                         if B[k][j] != 0
13                         {
14                             res[i][j] += A[i][k] * B[k][j]
15                         }
16                     }
17                 }
18             }
19         }
20         return res            
21     }
22 }

Solution:

 1 class Solution {
 2     func multiply(_ A:inout [[Int]],count:A.count)
 4         var v:[[(Int,int)]] = [[(Int,int)]](repeaTing:[(Int,int)](),count:A.count)
 5         for i in 0..<A.count
 6         {
 7             for k in 0..<A[i].count
 8             {
 9                 if A[i][k] != 0
10                 {
11                     v[i].append((k,A[i][k]))
12                 }
13             }
14         }
15         for i in 0..<A.count
16         {
17             for k in 0..<v[i].count
18             {
19                 var col:Int = v[i][k].0
20                 var val:Int = v[i][k].1
21                 for j in 0..<B[0].count
22                 {
23                     res[i][j] += val * B[col][j]
24                 }
25             }
26         }
27         return res            
28     }
29 }

点击:Playground测试

1 var A:[[Int]] = [[ 1,0,0],[-1,3]]
2 var B:[[Int]] = [[ 7,0 ],[ 0,1 ]]
3 let sol = Solution()
4 print(sol.multiply(&A,&B))
5 //Print [[7,[-7,3]]

大佬总结

以上是大佬教程为你收集整理的[Swift]LeetCode311. 稀疏矩阵相乘 $ Sparse Matrix Multiplication全部内容,希望文章能够帮你解决[Swift]LeetCode311. 稀疏矩阵相乘 $ Sparse Matrix Multiplication所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。