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

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.lryc.cn/news/475449.html

相关文章:

  • 《机器人SLAM导航核心技术与实战》第1季:第10章_其他SLAM系统
  • 《双指针篇》---快乐数
  • U盘引导丢失问题的处理办法
  • layui tree customSelet选中的内容重写,查找父级
  • Maven 插件
  • MybatisPlus入门(七)MybatisPlus-DQL编程控制
  • K8S概念及其常见组件和整体架构
  • LabVIEW继电器视觉检测系统
  • linux操作系统进程
  • jeecgbootvue2菜单路由配置静态文件夹(public)下的html
  • PHP反序列化原生类字符串逃逸框架反序列化利用
  • 6.1、属性动画
  • v-model还可以作用于其他表单元素的使用
  • 最短路的求解
  • 四:java 基础知识(4)-- 异常 字符串
  • Uniapp 实现app自动检测更新/自动更新功能
  • 7.0、RIP
  • C#与C++结构体的交互
  • sql纵表转横表
  • 数据采集-Kepware OPCUA 服务器实现
  • 初识计算机网络
  • Oracle 第11章:异常处理
  • 导航栏渐变色iOS
  • mysql读写分离
  • 计算机的错误计算(一百四十二)
  • 利用大模型辅助科研论文写作·第一期|论文写作·24-11-02
  • JavaScript。—关于语法基础的理解—
  • Tomcat 11 下载/安装 与基本使用
  • Linux系统时间服务——Chrony服务器
  • C# 接口(Interface)