
位运算
豌豆射手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输出: false2的倍数只有一个1解法1:去除最右的1,看n是否为0N&(N-1)class Solution {public: bool isPowerOfTwo(int n) { if(n<=0) return fa原创 2020-06-03 11:39:24 · 188 阅读 · 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 - 001 - 111 - 310 - 2对于给定的 n,其格雷编码序列并不唯一。例如,[0,2,3,1] 也是一个有效的格雷编码序列。00 - 010 - 211 - 301 - 1示例原创 2020-05-14 13:02:42 · 739 阅读 · 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 · 539 阅读 · 0 评论 -
C++ 枚举 001:特殊密码锁
001:特殊密码锁总时间限制: 1000ms 内存限制: 1024kB描述有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态。然而让人头疼的是,当你按一个按钮时,跟它相邻的两个按钮状态也会反转。当然,如果你按的是最左或者最右边的按钮,该按钮只会影响到跟它相邻的一个按钮。当前密码锁状态已知,需要解决的问题是,你至少需要按多少次按钮...原创 2020-03-25 15:22:53 · 808 阅读 · 0 评论