时针 矩阵offer

高Cache命中率的矩阵乘法

#include <ctime> #include <iostream> using namespace std; int main(int argc, char** argv) { int N = 500; int A[N][N]; int B[N][N]; double C1[N][N]; do ......
乘法 命中率 矩阵 Cache

树:剑指 Offer 68 - I. 二叉搜索树的最近公共祖先

题目描述: 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root ......
祖先 Offer 68

【LeetCode剑指offer 02】矩阵中的路径(老鼠走迷宫plus,应用深度优先搜索与回溯机制)

矩阵中的路径 https://leetcode.cn/problems/ju-zhen-zhong-de-lu-jing-lcof/ 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照 ......
矩阵 迷宫 路径 深度 LeetCode

【LeetCode剑指offer 01】数组中重复的数字、两个栈实现队列

数组中重复的数字 数组中重复的数字 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入: [2, 3, 1, 0, 2, ......
队列 数组 LeetCode 两个 数字

使用benchmark比较循环嵌套与strassen求解矩阵乘法的性能

#include <benchmark/benchmark.h> #include <iostream> #include <random> #include <vector> using namespace std; static const int n = 200; static const i ......
乘法 矩阵 benchmark strassen 性能

Leetcode(剑指offer专项训练)——DP专项(7)

矩阵中的距离 题目: 给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 链接 TLS思路题解 暴力DFS的结果是超时😢,就是找每个位置的距离它最近的零点的位置 class Solu ......
专项 Leetcode offer

树:剑指 Offer 55 - II. 平衡二叉树

题目描述: 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 示例 1: 示例 2: 限制: 0 <= 树的结点个数 <= 10000 方法基于以下性质推出: 此树的深度 等于 左子树的深度 与 右子树的深度 中的 最大 ......
Offer 55 II

树:剑指 Offer 55 - I. 二叉树的深度

题目描述: 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如: 给定二叉树 [3,9,20,null,null,15,7], 返回它的最大深度 3 。 树的遍历方式总体分为两类:深度优先搜索(DFS)、广度优先搜索 ......
深度 Offer 55

匹配矩阵

a <- matrix(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15),nrow=3,ncol=5) c <- matrix(c(2,3,3,3,3,4,4,4,4,8,8,8),nrow=3,ncol=4) rownames(a)<-c("aa","cc","kk") ......
矩阵

1284. 转化为全零矩阵的最少反转次数

题目描述 给一个二维矩阵,里面的元素不是0就是1 可以通过翻转完成0-1变换,翻转的限制是周围相邻的点也要跟着变 问最终反转成全0的形式的最小次数? f1-状态压缩+bfs 基本分析 看大最少翻转次数可以联想到什么?bfs 直接bfs有啥问题?(1)矩阵的形式怎么存?通过状态压缩将二维转化为1维度 ......
矩阵 次数 1284

树:剑指 Offer 54. 二叉搜索树的第k大节点

题目描述: 给定一棵二叉搜索树,请找出其中第 k 大的节点的值。 示例 1: 示例 2: 解题思路:本文解法基于此性质:二叉搜索树的中序遍历为 递增序列 。 •根据以上性质,易得二叉搜索树的 中序遍历倒序 为 递减序列 。 •因此,求 “二叉搜索树第 k 大的节点” 可转化为求 “此树的中序遍历倒序 ......
节点 Offer 54

力扣---剑指 Offer 41. 数据流中的中位数

如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 + 3) / 2 = 2.5 设计一个支持 ......
中位数 数据流 数据 Offer 41

树:剑指 Offer 37. 序列化二叉树

题目描述: 请实现两个函数,分别用来序列化和反序列化二叉树。 你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。 提示:输入输出格式与 LeetCode 目前使用的方式 ......
序列 Offer 37

Maze 第二十届浙大城市学院程序设计竞赛 (二分图,网络流(对于表格,矩阵是如何建边的))

题目大意: 给出一个01矩阵, 给出q,p 分别表示 选一个点的权值,和选2个连在一起的点的权值 问如何让权值更大 注意 : 在Dinic 的时间复杂度对于二分图这种边权为1, 时间复杂度为 NsqrtN, 不是n^2 m 思路: 更具题目的条件限制,他的建边一定是2个矮在一起的 因此更具 (i+j ......
矩阵 程序设计 表格 程序 学院

【SciPy】Sparse稀疏矩阵主要存储格式总结(转载)

原文:【SciPy】Sparse稀疏矩阵主要存储格式总结 在数据科学和深度学习等领域常会采用矩阵格式来存储数据,但当矩阵较为庞大且非零元素较少时,运算效率和存储有效率并不高。所以,通常我们采用Sparse稀疏矩阵的方式来存储矩阵,提高存储和运算效率。下面将对SciPy中七种常见的存储方式(COO/ ......
矩阵 格式 Sparse SciPy

1594. 矩阵的最大非负积

题目描述 给了一个矩阵grid,里面的数字有正有负 问从左上角到右下角的最大乘积? f1-dp 基本分析 这里有正又负会有啥问题?可能最小的负*负数会产生最大的正数,所以需要维护两个值,最大的路径积和最小的路径积 怎么进行转移?只能从左边或者上面转移来,需要对grid[i][j]的值按照正负分类讨论 ......
矩阵 1594

剑指offer(Java)-数组中的逆序对(困难)

题目: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 示例1: 输入: [7,5,6,4] 输出: 5 限制: 0 <= 数组长度 <= 50000 解题思路: 这道题的核心在于 归并排序,在归并排序的基础上进行求解 逆 ......
逆序 数组 offer Java

前端已死?金三银四?你收到offer了吗?

最近在脉脉、知乎等平台都有人在渲染前端从业人员的危机,甚至使用“前端已死”的字眼,颇有“语不惊人死不休”的意味,对老鸟来说,这关乎职业寿命,关乎生活,但因为浸淫行业多年,个中变化比较了解,应该不会太受影响,对新人可能就有误导了,甚至不敢入行。 ......
前端 offer

树:剑指 Offer 34. 二叉树中和为某一值的路径

题目描述: 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targe ......
路径 Offer 34

[C/C++] 输入行的长度不确定的整型矩阵

昨天做笔试题,发现不会接收,白白送了一题,记录一下 #include <bits/stdc++.h> using namespace std; int main() { vector<vector<int>> inputs; // 二维矩阵 int num; vector<int> input; / ......
矩阵 长度

树(层序遍历)剑指 Offer 32 - III. 从上到下打印二叉树 III

题目描述: 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果: [ [ ......
III Offer 32

力扣---剑指 Offer 36. 二叉搜索树与双向链表

输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为例: 我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节 ......
双向 Offer 36

力扣---剑指 Offer 34. 二叉树中和为某一值的路径

给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = ......
路径 Offer 34

Leetcode(剑指offer专项训练)——DP专项(6)

排序的数目 题目 给定一个由 不同 正整数组成的数组 nums ,和一个目标整数 target 。请从 nums 中找出并返回总和为 target 的元素组合的个数。数组中的数字可以在一次排列中出现任意次,但是顺序不同的序列被视作不同的组合。 题目数据保证答案符合 32 位整数范围。 链接 无效DF ......
专项 Leetcode offer

Leetcode(剑指offer专项训练)——DP专项(5)

最少的硬币数目 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 你可以认为每种硬币的数量是无限的。 链接 完全背包问题 思路:主要是要自己推出动态转移方程 $$ F(i)=min_{ ......
专项 Leetcode offer

力扣---剑指 Offer 12. 矩阵中的路径

给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 例 ......
矩阵 路径 Offer 12

acwing 4405.统计子矩阵的和

原题链接 解题思路 通过i和j来控制子矩阵的左右边界,通过s和t来控制子矩阵的上下边界, 在子矩阵的和小于k时候,统计子矩阵的个数。 代码 #include<iostream> using namespace std; const int N = 550; int a[N][N]; // i 与 j ......
矩阵 acwing 4405

HJ70_矩阵乘法计算量估算_入门栈使用的典型题

反思: 这题咋一看不难,但是越做坑越多,按照一开始不完善的思路无法完全通过测试。 参看高赞答案,代码行数特少。但是没考虑一个括号中有三个矩阵的情况。 思路: 1、判断哪两个矩阵开始相乘的条件:遇到“)”时,该字符前两个矩阵开始相乘。把相乘后矩阵行列数组压入栈栈中。该题默认不存在(A(BCD))一个括 ......
乘法 矩阵 典型 HJ 70

Leetcode(剑指offer专项训练)——DP专项(4)

加减的目标值 给定一个正整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 '+' 或 '-' ,然后串联起所有整数,可以构造一个 表达式 : 例如,nums = [2, 1] ,可以在 2 之前添加 '+' ,在 1 之前添加 '-' ,然后串联起来得到表达式 "+2-1" ......
专项 Leetcode offer

剑指offer42(Java)-连续子数组的最大和(简单)

题目: 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 示例1: 输入: nums = [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 提示: 1 <= ar ......
数组 offer Java 42