矩阵
小马哥MAX
刷题记录BLOG
展开
-
【一次过】Lintcode 1042. 托普利兹矩阵
“托普利兹矩阵”是指如果从左上角到右下角的同一条主斜线上每个元素都相等的矩阵.给定一个M x N矩阵,判断是否为“托普利兹矩阵”.样例样例 1:输入: matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]输出: True解释:123451239512在上述矩阵中,主斜线上元素分别为 "[9]", "[5, 5]", "[1, 1, 1]"...原创 2018-09-17 20:08:27 · 401 阅读 · 0 评论 -
【两次过】Lintcode 477. 被围绕的区域
给一个二维的矩阵,包含'X'和'O', 找到所有被'X'围绕的区域,并用'X'替换其中所有的'O'。样例样例 1:输入: X X X X X O O X X X O X X O X X输出: X X X X X X X X X X X X X O X X样例 2:输入: X X X X X O O X X O...原创 2019-03-04 10:05:15 · 188 阅读 · 0 评论 -
【一次过】二维数组中的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路:矩阵是有序的,从左下角来看,向上数字递减,向右数字递增,因此从左下角开始查找,当要查找数字比左下角数字大时。右移,要查找数字比左下角数字小时,上移public class ...原创 2019-03-20 09:26:42 · 110 阅读 · 0 评论 -
【三次过】Lintcode 1386. 坐缆车
小九来到某地坐缆车,他的钱只能坐一次缆车,所以他想尽量延长坐缆车的时间。已知缆车站分布可以看作是一个n x m的矩阵,每个格点代表缆车站的高度。他可以从任一站点开始坐缆车,缆车只能从矮的高度移动到高的高度,花费1单位的时间。缆车可以朝着八个方向移动。(上下左右、左上、左下、右上、右下)问小九最多能坐多久缆车?样例样例1输入: mat = [ [1,2,3], [4,...原创 2019-02-19 18:29:49 · 423 阅读 · 0 评论 -
【两次过】Lintcode 626. 矩形重叠
给定两个矩形,判断这两个矩形是否有重叠。样例给定 l1 =[0, 8], r1 =[8, 0], l2 =[6, 6], r2 =[10, 0], 返回true给定 l1 =[0, 8], r1 =[8, 0], l2 =[9, 6], r2 =[10, 0], 返回false解题思路: 一开始想了很多种情况,但是这样太复杂了。由于这里矩形都是与...原创 2018-06-24 17:21:35 · 358 阅读 · 0 评论 -
【两次过】机器人的运动范围
题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?解题思路:从(0,0)点开始dfs,...原创 2019-05-13 10:50:53 · 84 阅读 · 0 评论 -
【一次过】Lintcode 1144. 范围加法之二
给定一个m * n 的全零矩阵M,以及一些更新操作。操作由2D数组表示,并且每个操作由具有两个正整数a和b的数组表示,对于一个操作[a,b],这意味着M [i] [j] 会在所有0 <= i <a且0 <= j <b 的i,j位置上加1.在执行完所有操作后,您需要计算并返回矩阵中的最大整数的个数。样例样例 1:输入: m = 3, n = 3ope...原创 2018-09-25 09:25:33 · 261 阅读 · 0 评论 -
【两次过】Lintcode 1170. 重塑矩阵
在MATLAB中,有一个非常有用的函数叫做'reshape',它可以将矩阵重新整形为一个不同大小的矩阵,但保留其原始数据。先给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示所需重新整形矩阵的行数和列数。重新形成的矩阵需要用原始矩阵的所有元素以相同的行遍历顺序填充。如果使用给定参数的“重塑”操作是可能且合法的,则输出新的重新整形矩阵; 否则,输出原始矩阵。样例样例1:...原创 2018-09-26 09:30:21 · 148 阅读 · 0 评论 -
【两次过】Lintcode 389. 判断数独是否合法
请判定一个数独是否有效。该数独可能只填充了部分数字,其中缺少的数字用.表示。样例The following partially filed sudoku is valid.解题思路:验证数独是否有效,就三个要求:1.数字1-9在每一行最多只能出现一次2.数字1-9在每一列最多只能出现一次3.数字1-9在每一个3*3九宫格内最多只能出现一次出现有次数的题目...原创 2018-07-29 10:43:25 · 211 阅读 · 0 评论 -
【三次过】Lintcode 33. N皇后问题
n皇后问题是将n个皇后放置在n*n的棋盘上,皇后彼此之间不能相互攻击。给定一个整数n,返回所有不同的n皇后问题的解决方案。每个解决方案包含一个明确的n皇后放置布局,其中“Q”和“.”分别表示一个女王和一个空位置。样例对于4皇后问题存在两种解决的方案:[ [".Q..", // Solution 1 "...Q", "Q...", "...原创 2018-11-14 10:23:16 · 192 阅读 · 0 评论 -
【两次过】Lintcode 436. 最大正方形
在一个二维01矩阵中找到全为1的最大正方形, 返回它的面积.样例样例 1:输入:[ [1, 0, 1, 0, 0], [1, 0, 1, 1, 1], [1, 1, 1, 1, 1], [1, 0, 0, 1, 0]]输出: 4样例 2:输入: [ [0, 0, 0], [1, 1, 1]]输出: 1解题思路:动态规划。设定...原创 2019-03-22 09:53:22 · 170 阅读 · 0 评论 -
【两次过】【坐标型】Lintcode 553. 炸弹袭击
给一个二维矩阵, 每一个格子都可能是一堵墙W, 一个敌人E或者空0(数字 '0'), 返回你可以用一个炸弹杀死的最大敌人数. 炸弹会杀死所有在同一行和同一列没有墙阻隔的敌人, 因为墙比较坚固难以摧毁.样例给一个矩阵:0 E 0 0E 0 W E0 E 0 0返回3.(在(1, 1)处放炸弹可以杀死 3 个敌人)注意事项你只能在空的地方放置炸弹.解题思...原创 2018-10-22 10:07:21 · 375 阅读 · 0 评论 -
【一次过】Lintcode 737. 查找矩阵
给一矩阵, 找到矩阵中每一行都出现的元素. 你可以假设矩阵中只有一个满足条件的元素.样例给一矩阵:[ [2,5,3], [3,2,1], [1,3,5]]返回3解题思路:将矩阵中所有元素用unorder_map<int,int>存储,key为数值,value为频次。最后只要返回频次为矩阵长的数值即可。但是这里有一个小陷阱,如果一行全是这个...原创 2018-07-18 20:41:02 · 192 阅读 · 0 评论 -
【一次过】Lintcode 770. 最大数和最小数
给定一个矩阵,返回矩阵中的最大数和最小数样例给定一个矩阵:[ [1,2,3], [4,3,2], [6,4,4]]返回[6,1]解题思路:直接遍历即可。class Solution {public: /** * @param matrix: an input matrix * @return: nums[0]: the m...原创 2018-07-19 20:45:21 · 261 阅读 · 0 评论 -
【一次过】Lintcode 38. 搜索二维矩阵 II
写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。这个矩阵具有以下特性:每行中的整数从左到右是排序的。 每一列的整数从上到下是排序的。 在每一行或每一列中没有重复的整数。样例考虑下列矩阵:[ [1, 3, 5, 7], [2, 4, 7, 8], [3, 5, 9, 10]]给出target =3,返回2...原创 2018-08-13 16:41:05 · 1340 阅读 · 0 评论 -
【两次过】Lintcode 374. 螺旋矩阵
给定一个包含mxn个要素的矩阵,(m行,n列),按照螺旋顺序,返回该矩阵中的所有要素。样例样例 1:输入:[[ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]样例 2输入:[[ 6,4,1 ], [ 7,8,9 ]]输出: [6,4,1,9,8,7]解题思路:把矩阵看成若干个...原创 2019-04-15 11:01:19 · 177 阅读 · 0 评论 -
【两次过】Lintcode 185. 矩阵的之字型遍历
给你一个包含mxn个元素的矩阵 (m行,n列), 求该矩阵的之字型遍历。样例对于如下矩阵:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10, 11, 12]]返回[1, 2, 5, 9, 6, 3, 4, 7, 10, 11, 8, 12]解题思路:观察之字形走法,循环1-4步骤即可:1、先斜上走到顶2...原创 2018-11-27 14:01:36 · 131 阅读 · 0 评论 -
【三次过】Lintcode 778. 太平洋和大西洋的水流
给定一个m×n的非负矩阵代表一个大洲,矩阵的每个单元格的值代表此处的地形高度,矩阵的左边缘和上边缘是“太平洋”,下边缘和右边缘是“大西洋”。水流只能在四个方向(上,下,左或右)从一个单元格流向另一个海拔和自己相等或比自己低的单元格。找到那些从此处出发的水既可以流到“太平洋”,又可以流向“大西洋”的单元格的坐标。样例例1:输入:matrix = [[1,2,2,3,5],...原创 2019-03-04 11:28:51 · 268 阅读 · 0 评论 -
【两次过】Lintcode 162. 矩阵归零
给定一个m×n矩阵,如果一个元素是0,则将其所在行和列全部元素变成0。需要在原矩阵上完成操作。样例给出一个矩阵[ [1, 2], [0, 3]]返回[ [0, 2], [0, 0]]挑战你是否使用了额外的空间?一个直接的解决方案是使用 O(MN) 的额外空间,但这并不是一个好的方案。一个简单的改进方案是使用 O(M + N) 的额外空...原创 2019-01-17 11:31:21 · 167 阅读 · 0 评论 -
【一次过】Lintcode 433:岛屿的个数
给一个01矩阵,求不同的岛屿的个数。0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。样例在矩阵:[ [1, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 0, 0, 1, 1], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1]]中有3个岛.解题思路:...原创 2018-06-18 17:08:40 · 312 阅读 · 0 评论 -
【一次过】Lintcode 897. 海岛城市
给一个n x m的矩阵,矩阵的值有0、1、2,0代表海,1代表海岛,2代表海岛上的城市(你可以看做2是建立在1的上面,即2也也同时代表海岛)。如果2个1相邻,那么这两个1属于同一个岛。现在求至少有一个城市的海岛个数。样例样例1输入: [[1,1,0,0,0],[0,1,0,0,1],[0,0,0,1,1],[0,0,0,0,0],[0,0,0,0,1]]输出: 0...原创 2019-02-17 22:02:53 · 259 阅读 · 0 评论 -
【两次过】Lintcode 1479. 能否到达终点
给一个大小为m*n的map,1代表空地,0代表障碍物,9代表终点。请问如果你从(0, 0)开始能否到达终点?样例样例1输入: [ [1,1,1], [1,1,1], [1,1,9]]输出: true样例2输入: [ [1,1,1], [1,0,0], [1,0,9]]输出: false解题思路1:BFSpublic cla...原创 2019-02-19 18:40:02 · 726 阅读 · 0 评论