LeetCode 311. 稀疏矩阵的乘法

文章目录

    • 1. 题目
    • 2. 解题
      • 2.1 暴力求解
      • 2.2 选取都不为0的行和列相乘

1. 题目

给你两个 稀疏矩阵 A 和 B,请你返回 AB 的结果。
你可以默认 A 的列数等于 B 的行数。

请仔细阅读下面的示例。

示例:
输入:
A = [[ 1, 0, 0],[-1, 0, 3]
]
B = [[ 7, 0, 0 ],[ 0, 0, 0 ],[ 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 |

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sparse-matrix-multiplication
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

2.1 暴力求解

  • 3层 for 循环
class Solution {
public:vector<vector<int>> multiply(vector<vector<int>>& A, vector<vector<int>>& B) {vector<vector<int>> ans(A.size(), vector<int>(B[0].size(), 0));int i, j, k, sum;for(i = 0; i < A.size(); ++i)for(j = 0; j < B[0].size(); ++j){sum = 0;for(k = 0; k < A[0].size(); ++k)sum += A[i][k]*B[k][j];ans[i][j] = sum;}return ans;}
};

24 ms 8.4 MB

2.2 选取都不为0的行和列相乘

class Solution {
public:vector<vector<int>> multiply(vector<vector<int>>& A, vector<vector<int>>& B) {vector<bool> r_all0(A.size(),true);vector<bool> c_all0(B[0].size(),true);int i, j, k, sum;bool flag = false;for(i = 0; i < A.size(); ++i){flag = false;for(j = 0; j < A[0].size(); ++j){if(A[i][j]){flag = true;break;}}if(flag)r_all0[i] = false;}for(j = 0; j < B[0].size(); ++j){flag = false;for(i = 0; i < B.size(); ++i){if(B[i][j]){flag = true;break;}}if(flag)c_all0[j] = false;}vector<vector<int>> ans(A.size(), vector<int>(B[0].size(), 0));for(i = 0; i < A.size(); ++i)for(j = 0; j < B[0].size(); ++j){if(r_all0[i] || c_all0[j])continue;sum = 0;for(k = 0; k < A[0].size(); ++k)sum += A[i][k]*B[k][j];ans[i][j] = sum;}return ans;}
};

8 ms 8.6 MB


长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475230.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jQuery UI应用--滑块Slider

1、 Animate&#xff1a; 类型Boolean 默认值false a) 用处&#xff1a;单击滑动区域时&#xff0c;滑块是否使用动画效果平滑移动到单击位置。 b) 代码示例&#xff1a; 创建实例时设置属性值 $(".class").slider({animate:true}); 实例化后得到…

java部署jar还是war优劣_详解Spring Boot 部署jar和war的区别

本文介绍了Spring Boot 部署jar和war两种方式的区别,分享给大家,具体如下: 1、 packaging的方式不同,一种设置成jar一种是war xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 cn.vcyber.www vcybe…

创业产品经理需要懂技术吗?

作为一位工程师&#xff0c;和一位在不断追求更好产品的设计人员。个人认为&#xff0c;产品经理最好是这样的&#xff1a;一、 精通技术。技术很容易框住人的思想&#xff0c;要不特别精通&#xff0c;能随时跳出技术的束缚&#xff0c;带给产品真正的提升。一般这种产品经理会…

LeetCode 281. 锯齿迭代器(map+vector)

文章目录1. 题目2. 解题1. 题目 给出两个一维的向量&#xff0c;请你实现一个迭代器&#xff0c;交替返回它们中间的元素。 示例: 输入: v1 [1,2] v2 [3,4,5,6] 输出: [1,3,2,4,5,6]解析: 通过连续调用 next 函数直到 hasNext 函数返回 false&#xff0c;next 函数返回值的…

[转载] 杜拉拉升职记——39 充满变数的时期

来源&#xff1a;李可. 杜拉拉升职记(第三版). 西安: 陕西师范大学出版社, 2010, 5. 39 充满变数的时期 何好德和几个销售总监分别谈了话。Tony林事先自然也多少听到些风声&#xff0c;等正式证实了&#xff0c;还是感觉郁闷极了&#xff0c;表面还得装没事人一样&#xff0c;知…

LeetCode 186. 翻转字符串里的单词 II

文章目录1. 题目2. 解题1. 题目 给定一个字符串&#xff0c;逐个翻转字符串中的每个单词。 示例&#xff1a; 输入: ["t","h","e"," ","s","k","y"," ","i","s","…

java自动的废料收集_Java 垃圾收集机制

对象引用Java 中的垃圾回收一般是在 Java 堆中进行&#xff0c;因为堆中几乎存放了 Java 中所有的对象实例。谈到 Java 堆中的垃圾回收&#xff0c;自然要谈到引用。在 JDK1.2 之前&#xff0c;Java 中的引用定义很很纯粹&#xff1a;如果 reference 类型的数据中存储的数值代表…

LeetCode 1198. 找出所有行中最小公共元素(二分/合并有序链表)

文章目录1. 题目2. 解题2.1 按列遍历2.2 二分查找2.3 合并k个有序链表1. 题目 给你一个矩阵 mat&#xff0c;其中每一行的元素都已经按 递增 顺序排好了。 请你帮忙找出在所有这些行中 最小的公共元素。 如果矩阵中没有这样的公共元素&#xff0c;就请返回 -1。 示例&#x…

Java参数传递笔记

java值传递与引用传递 1、对象是按引用传递的---带""号的赋值操作 2、Java 应用程序有且仅有的一种参数传递机制&#xff0c;即按值传递---由"函数调用"引起的 3、按值传递意味着当将一个参数传递给一个函数时&#xff0c;函数接收的是原始值的一个副本 4、…

java 分布式系统 面试_分布式系统的面试题9

1、面试题分布式服务接口请求的顺序性如何保证&#xff1f;2、面试官心里分析其实分布式系统接口的调用顺序&#xff0c;也是个问题&#xff0c;一般来说是不用保证顺序的。但是有的时候可能确实是需要严格的顺序保证。给大家举个例子&#xff0c;你服务A调用服务B&#xff0c;…

Windows phone 应用开发[14]-调用WebBrowser

很久没有更新博客了.最近一直陷身在项目中难以有时间抽身梳理总结.关于博客确实很多想写的主题.节前大概草草 的梳理一下大概就有十几个主题.只能趁着放假的时间来逐渐把这批文章力所能及系统的更新出来. 主要涉及到我们团队现在Windows phone 项目开发中实际碰到一些问题和对应…

LeetCode 369. 给单链表加一(递归)

文章目录1. 题目2. 解题1. 题目 用一个 非空 单链表来表示一个非负整数&#xff0c;然后将这个整数加一。 你可以假设这个整数除了 0 本身&#xff0c;没有任何前导的 0。 这个整数的各个数位按照 高位在链表头部、低位在链表尾部 的顺序排列。 示例: 输入: [1,2,3] 输出: …

java弹窗点击事件_[Java教程]jQuery的click事件在当前页弹出层窗口(不打开新页面)...

[Java教程]jQuery的click事件在当前页弹出层窗口(不打开新页面)0 2015-10-24 15:00:04当给链接添加一个click事件&#xff0c;我们可能不希望Web浏览器按照其常规模式退出当前页面并通过新页面载入链接的目的地&#xff0c;而是在当前页弹出层窗口(不打开新页面)。例如&#xf…

LeetCode 1430. 判断给定的序列是否是二叉树从根到叶的路径(递归)

文章目录1. 题目2. 解题1. 题目 给定一个二叉树&#xff0c;我们称从根节点到任意叶节点的任意路径中的节点值所构成的序列为该二叉树的一个 “有效序列” 。 检查一个给定的序列是否是给定二叉树的一个 “有效序列” 。 我们以整数数组 arr 的形式给出这个序列。 从根节点到…

工作笔记-SDRAM的读写

用Quartus II的MegaFunction中的FIFO时&#xff0c;通常会用到wrusedw或rdusedw这两个信号&#xff0c;前者标志当前FIFO已经被使用了多少Word&#xff0c;后者表示当前FIFO还有多少Word可供读取。需要注意的是&#xff0c;若在二者已经达到了最大值时继续进行相应的读写操作&a…

jre6-java运行环境_Java运行环境(JRE8)64位 1.8.0.25

Java 是一个通用术语&#xff0c;用于表示 Java 软件及其组件&#xff0c;包括“Java 运行时环境 (JRE)”和“Java 虚拟机 (JVM)”。相信很多用户都用过JAVA程序,它的应用不只是在手机,各种平台都有其用武之地。在PC平台上运行Java程序时&#xff0c;有时候会提示你缺少Java环境…

LeetCode 362. 敲击计数器(map)

文章目录1. 题目2. 解题1. 题目 设计一个敲击计数器&#xff0c;使它可以统计在过去5分钟内被敲击次数。 每个函数会接收一个时间戳参数&#xff08;以秒为单位&#xff09;&#xff0c;你可以假设最早的时间戳从1开始&#xff0c;且都是按照时间顺序对系统进行调用&#xff…

a算法TSP旅行商java_A*算法实现旅行商问题(人工智能报告,付代码)

一、问题描述“旅行商问题”常被称为“旅行推销员问题”&#xff0c;是指一名推销员要拜访多个地点时&#xff0c;如何找到在拜访每个地点一次后再回到起点的最短路径。规则虽然简单&#xff0c;但在地点数目增多后求解却极为复杂。旅行商问题在本实验中的具体化&#xff1a;从…

windows phone 7 中文天气预报应用--来源http://www.cnblogs.com/liulunet/archive/2011/08/17/2141696.html...

windows phone 7 中文天气预报应用wp7的应用还是太少了&#xff0c;中文应用更少。虽然有天气预报应用但是自己感觉并不好用&#xff0c;感觉这样的程序应该很简单&#xff0c;于是萌生了自己写一个的想法。 印证了群里朋友说的一句话&#xff1a;程序员往往都是使用别人的程序…

LeetCode 666. 路径和 IV(树的遍历)

文章目录1. 题目2. 解题1. 题目 对于一棵深度小于 5 的树&#xff0c;可以用一组三位十进制整数来表示。 对于每个整数&#xff1a; 百位上的数字表示这个节点的深度 D&#xff0c;1 < D < 4。十位上的数字表示这个节点在当前层所在的位置 P&#xff0c; 1 < P <…