Hadoop 是一款开源的分布式大数据处理框架,核心用来存储和计算海量数据(比如TB/PB级数据)
-
关键词:分布式、存海量数据、并行计算;
-
sum:++"把数据拆了存、拆了算,解决大数据单台电脑'存不下、算得慢'"的问题。++
把Hadoop看成"数据处理工厂":
-
存储部分(HDFS):像多个硬盘拼成的"大仓库",把数据拆成小块存到多台服务器,安全又能存海量数据;
-
计算部分(MapReduce/YARN):像多个工人分工干活,把复杂计算拆成小任务,多台服务器同时算,效率翻倍。
用途
处理日志分析、用户行为统计、大数据挖掘等场景(比如电商分析千万用户的购物习惯)
lc2064
二分猜答案
class Solution {
//max min
public:
int minimizedMaximum(int n, vector<int>& q) {
int l = 1, r = *max_element(q.begin(), q.end());
int res = r;
while (l <= r)
{
int m = l + (r - l) / 2;
int cnt = 0;
for (int x : q) {
cnt += (x + m - 1) / m;
if (cnt > n) break;
}
if (cnt <= n)
{//店可以尝试放更少
res = m;
r = m - 1;
}
else
l = m + 1;
}
return res;
}
};
lc1260
class Solution {
public:
vector<vector<int>> shiftGrid(vector<vector<int>>& grid, int k) {
int m = grid.size(), n = grid[0].size();
int total = m * n;
k %= total; // 避免多余迁移
// 二维 转 一维
vector<int> arr;
for (auto& row : grid) {
arr.insert(arr.end(), row.begin(), row.end());
}
// 迁移k次==把最后k个元素移到开头
reverse(arr.begin(), arr.end());
reverse(arr.begin(), arr.begin() + k);
reverse(arr.begin() + k, arr.end());
// 一维 转回 二维
vector<vector<int>> res(m, vector<int>(n));
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
res[i][j] = arr[i * n + j];
}
}
return res;
}
};