美文网首页
554. 砖墙/ 201. 数字范围按位与

554. 砖墙/ 201. 数字范围按位与

作者: Kevifunau | 来源:发表于2020-03-20 18:05 被阅读0次

554. 砖墙

  • 相关标签 : 哈希表
/*
[[1,2,2,1], | 1, 3, 5 6
[3,1,2], | 3, 4, 6
[1,3,2], | 1 ,4 ,6
[2,4],  | 2, 6
[3,1,2], | ,3 ,4,6
[1,3,1,1]] | 1,4 ,5,6

hm [1 ,2  3  4  5  | 6]
    3  1  3  4  2  | 6
这题简直不要脸了 
首先不是方形 rectangular 是矩形 。 硬是翻译成方形


*/

#define BUFSIZE 100000
int leastBricks(int** wall, int wallSize, int* wallColSize){
    
    
    int hm[BUFSIZE] = {0};
    int temp;
    for (int i = 0; i < wallSize; i++) {
        temp = 0;
        for (int j = 0; j < wallColSize[i] - 1; j++) { // -1 是 不要把 右边界算进去
            temp += wall[i][j];
            printf("%d ", temp);
            hm[temp]++;
        }
        
        printf("\n");
    }
    
    int max = 0;
    for (int i = 1; i < BUFSIZE; i++) { // 从 1 开始 就把 左边界排除了
        // printf("%d ", hm[i]);
        max = (hm[i] > max) ? hm[i] : max;
    }
    // printf("\n");
    
    return wallSize - max;

}

201. 数字范围按位与

  • 相关标签: 位运算


/*

显然暴力肯定不行 8256 / 8266 个通过测试用例 醉了

0 1   2^0 
2 3   2^1
4 7   2^2
8 15   2^3
16 31    2^4 ~ 2^5-1

    int hm[32] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912, 1073741824, 2147483648};
    
    
    
    看一下 m 和 N  是 2^? 
    
*/





// int rangeBitwiseAnd(int m, int n){
//     int res = 0xffffffff;
//     for (int i = m ; i <= n; i++) {
//         res &= i;
//     }
//     return res;
// }



#define BUFLEN 32 // 2147483647 == 2^32- 1
int rangeBitwiseAnd(int m, int n){
    int res = 0xffffffff;
    if (m == n) { // 自己 与 自己 还是自己 
        return m;
    }
    if ((int)log2(m) !=  (int)log2(n)) { // 不在一个区域内 直接是0 
        return 0;
    } else { // 在一个区域内
        for (long i = m; i <= n; i++) { // long  可能会超
            res &= i;
        }
        return res;
    }

}

相关文章

  • 554. 砖墙/ 201. 数字范围按位与

    554. 砖墙 相关标签 : 哈希表 201. 数字范围按位与 相关标签: 位运算

  • LeetCode 201-210

    201. 数字范围按位与[https://leetcode-cn.com/problems/bitwise-and...

  • 201. 数字范围按位与

    思路比较简单要找按位与的结果,需要找到这几个数字的公共前缀需要不断的右移,知道m==n,同时用一个变量来记录一共后...

  • 201. 数字范围按位与

    求m-n的按位与其实仔细一想:求的是m和n的公共前缀,同时m-n中的各个数前缀肯定一样1:先搞一个while循环,...

  • 554. 砖墙

    你的面前有一堵方形的、由多行砖块组成的砖墙。 这些砖块高度相同但是宽度不同。你现在要画一条自顶向下的、穿过最少砖块...

  • 554. 砖墙

    2021-05-02 LeetCode每日一题 链接:https://leetcode-cn.com/proble...

  • 554. 砖墙

    你的面前有一堵矩形的、由 n 行砖块组成的砖墙。这些砖块高度相同(也就是一个单位高)但是宽度不同。每一行砖块的宽度...

  • 力扣每日一题:554.砖墙

    554.砖墙 https://leetcode-cn.com/problems/brick-wall/[https...

  • [刷题防痴呆] 0201 - 数字范围按位与 (Bitwise

    题目地址 https://leetcode.com/problems/bitwise-and-of-numbers...

  • 按位与 按位或

    (一)按位与& 两位全为1,结果才为10&0=0;0&1=0;1&0=0;1&1=1例如:51&5 即0011 0...

网友评论

      本文标题:554. 砖墙/ 201. 数字范围按位与

      本文链接:https://www.haomeiwen.com/subject/xgqsyhtx.html