hadoop|贪心

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;

}

};

相关推荐
xhbaitxl5 小时前
算法学习day38-动态规划
学习·算法·动态规划
多恩Stone5 小时前
【3D AICG 系列-6】OmniPart 训练流程梳理
人工智能·pytorch·算法·3d·aigc
历程里程碑5 小时前
普通数组----轮转数组
java·数据结构·c++·算法·spring·leetcode·eclipse
pp起床5 小时前
贪心算法 | part02
算法·leetcode·贪心算法
sin_hielo5 小时前
leetcode 1653
数据结构·算法·leetcode
2501_901147835 小时前
面试必看:优势洗牌
笔记·学习·算法·面试·职场和发展
YuTaoShao5 小时前
【LeetCode 每日一题】3634. 使数组平衡的最少移除数目——(解法二)排序 + 二分查找
数据结构·算法·leetcode
wangluoqi5 小时前
26.2.6练习总结
数据结构·算法
Q741_1475 小时前
C++ 优先级队列 大小堆 模拟 力扣 703. 数据流中的第 K 大元素 每日一题
c++·算法·leetcode·优先级队列·
木井巳6 小时前
【递归算法】二叉搜索树中第K小的元素
java·算法·leetcode·深度优先·剪枝