
位运算
豌豆射手GCC
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
位运算+哈希表 318. 最大单词长度乘积
318. 最大单词长度乘积 给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母。你可以认为每个单词只包含小写字母。如果不存在这样的两个单词,返回 0。 示例 1: 输入: ["abcw","baz","foo","bar","xtfn","abcdef"] 输出: 16 解释: 这两个单词为 “abcw”, “xtfn”。 示例 2: 输入: ["a","ab","abc","d","cd","bcd","ab原创 2020-06-15 11:02:16 · 218 阅读 · 0 评论 -
位运算+得到最右1+去除最右1 231. 2的幂
231. 2的幂 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 示例 1: 输入: 1 输出: true 解释: 20 = 1 示例 2: 输入: 16 输出: true 解释: 24 = 16 示例 3: 输入: 218 输出: false 2的倍数只有一个1 解法1:去除最右的1,看n是否为0 N&(N-1) class Solution { public: bool isPowerOfTwo(int n) { if(n<=0) return fa原创 2020-06-03 11:39:24 · 189 阅读 · 0 评论 -
递归+&&+俄罗斯农民乘法 面试题64. 求1+2+…+n
面试题64. 求1+2+…+n 求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 示例 1: 输入: n = 3 输出: 6 示例 2: 输入: n = 9 输出: 45 限制: 1 <= n <= 10000 解题 用递归代替for循环; 用&&代替if条件,当n==0时,直接返回n,不进行后续递归; class Solution { public: int sumNums(i原创 2020-06-02 10:32:21 · 279 阅读 · 0 评论 -
位运算 201. 数字范围按位与
201. 数字范围按位与 给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。 示例 1: 输入: [5,7] 输出: 4 示例 2: 输入: [0,1] 输出: 0 解题 方法1:位移 所有数字按位与,即找到所有数字的公共前缀; 所有数字的公共前缀,即最大和最小数字的公共前缀; 故将m和n右移,直到相等后左移回来,返回值即为公共前缀; class Solution { public: int原创 2020-05-29 09:07:06 · 285 阅读 · 0 评论 -
位运算 190. 颠倒二进制位 191. 位1的个数
190. 颠倒二进制位 颠倒给定的 32 位无符号整数的二进制位。 示例 1: 输入: 00000010100101000001111010011100 输出: 00111001011110000010100101000000 解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。 示例 2: 输入:1111111111原创 2020-05-28 14:14:28 · 278 阅读 · 0 评论 -
异或求解奇偶性+哈希表储存前缀下标+满足奇偶的子串长度 1371. 每个元音包含偶数次的最长子字符串
1371. 每个元音包含偶数次的最长子字符串 给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 ‘a’,‘e’,‘i’,‘o’,‘u’ ,在子字符串中都恰好出现了偶数次。 示例 1: 输入:s = "eleetminicoworoep" 输出:13 解释:最长子字符串是 "leetminicowor" ,它包含 e,i,o 各 2 个,以及 0 个 a,u 。 示例 2: 输入:s = "leetcodeisgreat" 输出:5 解释:最长子字符串是 "leetc" ,其原创 2020-05-20 12:11:32 · 296 阅读 · 0 评论 -
二进制(异或)转格雷编码 + 找规律 89. 格雷编码
89. 格雷编码 格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。 给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。即使有多个不同答案,你也只需要返回其中一种。 格雷编码序列必须以 0 开头。 示例 1: 输入: 2 输出: [0,1,3,2] 解释: 00 - 0 01 - 1 11 - 3 10 - 2 对于给定的 n,其格雷编码序列并不唯一。 例如,[0,2,3,1] 也是一个有效的格雷编码序列。 00 - 0 10 - 2 11 - 3 01 - 1 示例原创 2020-05-14 13:02:42 · 740 阅读 · 0 评论 -
哈希+回溯+bitset+位运算(优化存储空间)+优化填写顺序 37. 解数独
37. 解数独 编写一个程序,通过已填充的空格来解决数独问题。 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 空白格用 '.' 表示。 一个数独。 答案被标成红色。 Note: 给定的数独序列只包含数字 1-9 和字符 ‘.’ 。 你可以假设给定的数独只有唯一解。 给...原创 2020-05-05 23:11:58 · 315 阅读 · 0 评论 -
位运算+二分法 29. 两数相除
29. 两数相除 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。 返回被除数 dividend 除以除数 divisor 得到的商。 整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2 示例 1: 输入: dividend = 1...原创 2020-05-03 17:06:14 · 443 阅读 · 0 评论 -
位运算+重复数字中的两个单个数字+数学+哈希 面试题 17.19. 消失的两个数字
面试题 17.19. 消失的两个数字 给定一个数组,包含从 1 到 N 所有的整数,但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗? 以任意顺序返回这两个数字均可。 示例 1: 输入: [1] 输出: [2,3] 示例 2: 输入: [2,3] 输出: [1,4] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problem...原创 2020-04-28 23:58:56 · 536 阅读 · 0 评论 -
位运算+异或+Not+and+xor 136. 只出现一次的数字+137. 只出现一次的数字 II +面试题56 - I. 数组中数字出现的次数
136. 只出现一次的数字 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 示例 1: 输入:nums = [4,1,4,6] 输出:[1,6] 或 [6,1] 示例 2: 输入:nums = [1,2,10,4,1,4,3,3] 输出:[2,10] 或 [10,2] 解题 位运算(时间复杂度...原创 2020-04-28 23:08:30 · 238 阅读 · 0 评论 -
C++ 递归 002:2的幂次方表示
002:2的幂次方表示 总时间限制: 1000ms 内存限制: 65536kB 描述 任何一个正整数都可以用2的幂次方表示。例如: 137=27+23+20 同时约定方次用括号来表示,即ab可表示为a(b)。由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步:7=22+2+20(21用2表示) 3=2+20 所以最后137可表示为: 2(2(2)+2+2(0))+2(2...原创 2020-03-25 15:13:45 · 540 阅读 · 0 评论 -
C++ 枚举 001:特殊密码锁
001:特殊密码锁 总时间限制: 1000ms 内存限制: 1024kB 描述 有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态。 然而让人头疼的是,当你按一个按钮时,跟它相邻的两个按钮状态也会反转。当然,如果你按的是最左或者最右边的按钮,该按钮只会影响到跟它相邻的一个按钮。 当前密码锁状态已知,需要解决的问题是,你至少需要按多少次按钮...原创 2020-03-25 15:22:53 · 808 阅读 · 0 评论