C语言 | Leetcode C语言题解之第554题砖墙

题目:

题解:

cpp 复制代码
struct HashTable {
    int key, val;
    UT_hash_handle hh;
};

int leastBricks(int** wall, int wallSize, int* wallColSize) {
    struct HashTable* cnt = NULL;
    for (int i = 0; i < wallSize; i++) {
        int n = wallColSize[i];
        int sum = 0;
        for (int j = 0; j < n - 1; j++) {
            sum += wall[i][j];
            struct HashTable* tmp;
            HASH_FIND_INT(cnt, &sum, tmp);
            if (tmp == NULL) {
                tmp = malloc(sizeof(struct HashTable));
                tmp->key = sum, tmp->val = 1;
                HASH_ADD_INT(cnt, key, tmp);
            } else {
                tmp->val++;
            }
        }
    }
    int maxCnt = 0;
    struct HashTable *iter, *tmp;
    HASH_ITER(hh, cnt, iter, tmp) {
        maxCnt = fmax(maxCnt, iter->val);
    }
    return wallSize - maxCnt;
}
相关推荐
夏鹏今天学习了吗1 天前
【LeetCode热题100(66/100)】寻找两个正序数组的中位数
算法·leetcode·职场和发展
墨染点香1 天前
LeetCode 刷题【151. 反转字符串中的单词】
算法·leetcode·职场和发展
奔跑吧邓邓子1 天前
【C语言实战(80)】C语言实战:从复盘到进阶,解锁编程新高度
c语言·进阶·复盘·终篇
@曾记否1 天前
如何在Keil5中在没有硬件支持的情况下使用Keil的模拟器(Simulator) + 调试窗口输出进行调试
c语言·stm32
烛衔溟1 天前
C语言多级指针与函数指针:指针的高级用法
c语言·算法
树在风中摇曳1 天前
C语言动态内存管理:从基础到进阶的完整解析
c语言·开发语言·算法
biter down1 天前
C 语言17:位操作符 & | ^:从二进制编码到大小端
c语言·开发语言
努力学算法的蒟蒻1 天前
day11(11.11)——leetcode面试经典150
算法·leetcode·面试
永远都不秃头的程序员(互关)1 天前
C 语言文件读写初探:打开数据之门 [特殊字符]
c语言