当前位置: 首页 > article >正文

C++ | Leetcode C++题解之第519题随机翻转矩阵

题目:

题解:

class Solution {
public:
    Solution(int m, int n) {
        this->m = m;
        this->n = n;
        this->total = m * n;
        srand(time(nullptr));
    }
    
    vector<int> flip() {
        int x = rand() % total;
        vector<int> ans;
        total--;   
        // 查找位置 x 对应的映射
        if (map.count(x)) {
            ans = {map[x] / n, map[x] % n};
        } else {
            ans = {x / n, x % n};
        }
        // 将位置 x 对应的映射设置为位置 total 对应的映射
        if (map.count(total)) {
            map[x] = map[total];
        } else {
            map[x] = total;
        }
        return ans;
    }
    
    void reset() {
        total = m * n;
        map.clear();
    }
private:
    int m;
    int n;
    int total;
    unordered_map<int, int> map;
};

http://www.kler.cn/a/372588.html

相关文章:

  • 机器学习初学者指南:Scikit-Learn基础到实战
  • C语言 | Leetcode C语言题解之第522题最长特殊序列II
  • AI基础:A*算法解八数码问题
  • VBox增强功能、VBoxLinuxAdditions安装、共享文件夹问题解决
  • @tarojs/components 和 taro-ui 中的组件之间的区别
  • 电子电气架构 --- 车载芯片现状
  • 轻型民用无人驾驶航空器安全操控理论培训知识总结-多旋翼部分
  • Redis 下载安装(Windows11)
  • 算法刷题基础知识总结
  • 逆变器前级倍压方案【工作日志】
  • 未来生活中的AI电脑是怎样的
  • 2023 春季测试 题解
  • 论坛系统测试报告
  • Postgresql源码(137)执行器参数传递与使用
  • 大语言模型(LLM)快速理解
  • DOM---鼠标事件类型(移入移出)
  • 基于Unet卷积神经网络的脑肿瘤MRI分割
  • LinkedList和链表(下)
  • 豆包,攻克数字是个什么工具?《GKData-挖掘数据的无限可能》(数据爬虫采集工具)
  • Ceph 存储系统全解
  • TMUX1308PWR规格书 数据手册 具有注入电流控制功能的 5V 双向 8:1单通道和 4:1 双通道多路复用器芯片
  • Android平台RTSP|RTMP播放器高效率如何回调YUV或RGB数据?
  • asp.net core 跨域配置不起作用的原因
  • 【Java多线程】9 Java 的并发性能优化
  • 如何将钉钉付款单数据集成到MySQL数据库
  • Kafka 客户端工具使用分享【offsetexplorer】