LeetCode - 566. Reshape the Matrix (C++) O(n)
2024-09-19 03:09:45
1. 题目大意
根据给定矩阵,重塑一个矩阵,r是所求矩阵的行数,c是所求矩阵的列数。如果给定矩阵和所求矩阵的数据个数不一样,那么返回原矩阵。否则,重塑矩阵。其中两个矩阵中的数据顺序不变(先行后列)。
2. 思路
由于矩阵中数据顺序不变,因此我们考虑按顺序做。原矩阵中的第i行第j列(从0开始)的数据可以记为第k个数,其中k=i*(原矩阵中的列数)+j。对应的是新产生的矩阵中的第k/c行,k%c列的元素。一一赋值。这题的关键是要小心数组的边界,正确找到对应的位置。
3. 代码
class Solution {
public:
vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {
int total = r*c, originr = nums.size(), originc = nums[0].size();
if(total != (originr*originc)) return nums;
vector<vector <int> > res(r ,vector<int>(c));
for(int k = 0; k < total; k++) res[k / c][k % c] = nums[k / originc][k % originc];
return res;
}
};
最新文章
- 理解 Keystone 核心概念 - 每天5分钟玩转 OpenStack(18)
- 15-前端开发之JavaScript
- stream数据流
- HDOJ Problem - 1299
- No Javascript on this page
- W3School-CSS 字体(font)实例
- FineReport报表系统实例方案之医院院长查询分析系统
- hibernate基础的CRUD的操作
- GitHub Extension for Visual Studio 2.0 is now available
- hibernate一对多注解
- MongoDB小记
- Style 的优先级
- 简单的实现QQ通信功能(三)
- Ubuntu 13.10 PHP 5.5.x mcrypt missing – Fatal Error: Undefined function mcrypt_encrypt()!
- Java基础知识强化52:经典排序之冒泡排序(BubbleSort)
- Spring Boot 最核心的 25 个注解,都是干货!
- 把本人基于Dubbo的毕业设计分享粗来~
- protobuf和protostuff的区别
- zabbix配置server,proxy,agent架构
- react native android 编译