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

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

题目:

题解:


typedef struct {
    unsigned long long val;
    UT_hash_handle hh;
} Hash;

typedef struct {
    Hash *hash;
    int n_rows;
    int n_cols;
} Solution, SL;


Solution* solutionCreate(int n_rows, int n_cols) {
    SL *obj = malloc(sizeof(SL));
    obj->hash = NULL;
    obj->n_rows = n_rows;
    obj->n_cols = n_cols;
    return obj;
}

int* solutionFlip(Solution* obj, int* retSize) {
    *retSize = 2;
    int *res = malloc(2 * sizeof(int));
    while (true) {
        int x = rand() % obj->n_rows;
        int y = rand() % obj->n_cols;
        unsigned long long t = x;
        t <<= 32;
        t |= y;
        // printf("%ld\n", t);
        Hash *p;
        HASH_FIND(hh, obj->hash, &t, sizeof(unsigned long long), p);
        if (!p) {
            res[0] = x;
            res[1] = y;
            p = malloc(sizeof(Hash));
            p->val = t;
            HASH_ADD(hh, obj->hash, val, sizeof(unsigned long long), p);
            break;
        }
    }
    return res;
}

void solutionReset(Solution* obj) {
    Hash *cur, *tmp;
    HASH_ITER(hh, obj->hash, cur, tmp) {
        HASH_DEL(obj->hash, cur);
    }
}

void solutionFree(Solution* obj) {
    Hash *cur, *tmp;
    HASH_ITER(hh, obj->hash, cur, tmp) {
        HASH_DEL(obj->hash, cur);
        free(cur);
    }
    free(obj);
}

/**
 * Your Solution struct will be instantiated and called as such:
 * Solution* obj = solutionCreate(n_rows, n_cols);
 * int* param_1 = solutionFlip(obj, retSize);
 
 * solutionReset(obj);
 
 * solutionFree(obj);
*/

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

相关文章:

  • 客户案例:某家居制造企业跨境电商,解决业务端(亚马逊平台)、易仓ERP与财务端(金蝶ERP)系统间的业务财务数据对账互通
  • STM32-笔记40-BKP(备份寄存器)
  • WordPress如何配置AJAX以支持点击加载更多?
  • 【C++】多线程
  • LSA更新、撤销
  • Xcode 正则表达式实现查找替换
  • 金华迪加 现场大屏互动系统 mobile.do.php 任意文件上传漏洞复现
  • R 数据框
  • RabbitMQ 存储机制
  • 像`npm i`作为`npm install`的简写一样,使用`pdm i`作为`pdm install`的简写
  • ARM base instruction -- madd
  • 函数的多返回值及多种传参方式
  • Python 的基本语法
  • 【C#】异步和多线程
  • 速度!双击文件就可以运行本地大模型!神奇的AI大模型开源项目——llamafile
  • Redis中储存含LocalDateTime属性对象的序列化实现
  • R数据结构向量基础
  • 公有云开发基础教程
  • 汽车固态电池深度报告
  • 4K双模显示器值得买吗?
  • Python WordCloud库与jieba分词生成词云图的完整指南
  • Ollama:本地部署与运行大型语言模型的高效工具
  • 在kanzi 3.9.8里使用API创建自定义材质
  • PHP反序列化原生类字符串逃逸框架反序列化利用
  • 奥数与C++小学四年级(第十七题 弹跳板)
  • blender雕刻基础 笔记