位操作
文章平均质量分 84
memcpy0
希望探索文理结合的自由之路。
展开
-
LeetCode 3158. 求出出现两次数字的 XOR 值【位运算】简单
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。原创 2024-08-25 18:05:42 · 789 阅读 · 0 评论 -
LeetCode 3143. 正方形中的最多点数【位运算,构造法】中等【C++,Java,Py3,Go,Rust】
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。原创 2024-08-23 01:08:34 · 822 阅读 · 0 评论 -
LeetCode 2859. 计算 K 置位下标对应元素的和【位操作】1000
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。原创 2024-01-25 22:08:40 · 1285 阅读 · 0 评论 -
LeetCode 2433. 找出前缀异或的原始数组【位运算,数组】1366
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。原创 2023-11-01 06:54:41 · 297 阅读 · 0 评论 -
LeetCode 779. 第K个语法符号【递归,找规律,位运算】中等
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。原创 2023-10-29 20:33:19 · 229 阅读 · 0 评论 -
LeetCode 2897. 对数组执行操作使平方和最大【贪心,位运算,哈希表】2301
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。原创 2023-10-18 16:44:28 · 187 阅读 · 0 评论 -
LeetCode 137. 只出现一次的数字 II【哈希表;位运算;数字逻辑;DFA】中等
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。原创 2023-10-17 11:09:22 · 179 阅读 · 0 评论 -
LeetCode 2605. Form Smallest Number From Two Digit Arrays【数组,哈希表,枚举;位运算】1241
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。原创 2023-09-05 11:33:36 · 1044 阅读 · 0 评论 -
LeetCode 338. Counting Bits【动态规划,位运算】简单
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。原创 2023-09-05 01:03:56 · 334 阅读 · 0 评论 -
LeetCode 1542. Find Longest Awesome Substring【异或前缀和,哈希表,字符串】困难
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。原创 2023-06-20 22:01:07 · 1003 阅读 · 0 评论 -
LeetCode 1915. Number of Wonderful Substrings【异或前缀和,位运算,哈希表,字符串】中等
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。原创 2023-06-20 18:32:39 · 869 阅读 · 1 评论 -
LeetCode 1371. Find the Longest Substring Containing Vowels in Even Counts【异或前缀和,位运算,哈希表,字符串】中等
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。原创 2023-06-20 15:02:51 · 96 阅读 · 0 评论 -
LeetCode 1177. Can Make Palindrome from Substring【异或前缀和,位运算,字符串】中等
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。原创 2023-06-20 12:28:09 · 731 阅读 · 0 评论 -
LeetCode 137. Single Number II【位运算/数组】中等
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。为了方便在PC上运行调试、分享代码文件,我还建立了相关的仓库:https://github.com/memcpy0/LeetCode-Conqu.原创 2021-10-31 22:22:14 · 101 阅读 · 0 评论 -
LeetCode 260. Single Number III【哈希表,位运算,数学】中等
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。为了方便在PC上运行调试、分享代码文件,我还建立了相关的仓库:https://github.com/memcpy0/LeetCode-Conqu.原创 2021-10-31 16:16:35 · 141 阅读 · 0 评论 -
LeetCode 36. Valid Sudoku【哈希表/位操作】中等
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。为了方便在PC上运行调试、分享代码文件,我还建立了相关的仓库:https://github.com/memcpy0/LeetCode-Conqu.原创 2021-10-01 23:03:28 · 159 阅读 · 0 评论 -
LeetCode 231. Power of Two【迭代/位操作/数学/打表】简单
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。为了方便在PC上运行调试、分享代码文件,我还建立了相关的仓库:https://github.com/memcpy0/LeetCode-Conqu.原创 2021-09-29 00:46:18 · 211 阅读 · 0 评论 -
洛谷 P1100 高低位交换【位操作】
题目描述给出一个小于 2322^{32}232 的正整数。这个数可以用一个 323232 位的二进制数表示(不足 323232 位用 000 补足)。我们称这个二进制数的前 161616 位为“高位”,后 161616 位为“低位”。将它的高低位交换,我们可以得到一个新的数。试问这个新的数是多少(用十进制表示)。例如,数 131452013145201314520 用二进制表示为 00000000000101000000111011011000000000000001010000001110110110原创 2021-07-03 19:28:50 · 354 阅读 · 0 评论 -
LeetCode 600. Non-negative Integers without Consecutive Ones【数位DP,斐波那契,位运算】困难
Given a positive integer n, return the number of the integers in the range [0, n] whose binary representations do not contain consecutive ones.Example 1:Input: n = 5Output: 5Explanation:Here are the non-negative integers <= 5 with their correspondi原创 2021-06-14 02:15:38 · 238 阅读 · 0 评论 -
LeetCode C++ 477. Total Hamming Distance【位运算/数学】中等
The Hamming distance between two integers is the number of positions at which the corresponding bits are different.Given an integer array nums, return the sum of Hamming distances between all the pairs of the integers in nums.Example 1:Input: nums = [4,原创 2021-05-28 00:52:39 · 209 阅读 · 0 评论 -
LeetCode C++ 461. Hamming Distance【Bit Manipulation】简单
The Hamming distance between two integers is the number of positions at which the corresponding bits are different.Given two integers x and y, return the Hamming distance between them.Example 1:Input: x = 1, y = 4Output: 2Explanation:1 (0 0 0 1)4原创 2021-05-28 00:50:43 · 156 阅读 · 0 评论 -
LeetCode C++ 1863. Sum of All Subset XOR Totals【BIt Manipulation/Recursion】简单
The XOR total of an array is defined as the bitwise XOR of all its elements, or 0 if the array is empty.For example, the XOR total of the array [2,5,6] is 2 XOR 5 XOR 6 = 1.Given an array nums, return the sum of all XOR totals for every subset of nums.&n原创 2021-05-18 01:21:59 · 511 阅读 · 1 评论 -
LeetCode C++ 1734. Decode XORed Permutation【Bit Manipulation】中等
There is an integer array perm that is a permutation of the first n positive integers, where n is always odd.It was encoded into another integer array encoded of length n - 1, such that encoded[i] = perm[i] XOR perm[i + 1]. For example, if perm = [1,3,2],原创 2021-05-11 03:24:04 · 173 阅读 · 3 评论 -
LeetCode C++ 1720. Decode XORed Array【Bit Manipulation】简单
There is a hidden integer array arr that consists of n non-negative integers.It was encoded into another integer array encoded of length n - 1, such that encoded[i] = arr[i] XOR arr[i + 1]. For example, if arr = [1,0,2,1], then encoded = [1,2,3].You are原创 2021-05-06 01:54:45 · 225 阅读 · 0 评论 -
LeetCode C++ 89. Gray Code【Bit Manipulation/Hash Table/Math】中等
The gray code is a binary numeral system where two successive values differ in only one bit.Given a non-negative integer n representing the total number of bits in the code, print the sequence of gray code. A gray code sequence must begin with 0.Example原创 2020-12-27 18:03:25 · 183 阅读 · 1 评论 -
LeetCode C++ 剑指 Offer 64. 求1+2+…+n【Bit Manipulation】中等
求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45限制: 1 <= n <= 10000解法1 直接乘除class Solution {public: int sumNums(int n) { return n * (n + 1) / 2; }};运行效率如下:执行用原创 2020-12-19 01:30:02 · 259 阅读 · 1 评论 -
LeetCode C++ 面试题 08.04. Power Set LCCI【Bit Manipulation/Recursion】中等
Write a method to return all subsets of a set. The elements in a set are pairwise distinct.Note: The result set should not contain duplicated subsets.Example:Input: nums = [1,2,3]Output: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]题意原创 2020-11-28 15:32:05 · 226 阅读 · 0 评论 -
LeetCode C++ 面试题 05.01. Insert Into Bits LCCI【Bit Manipulation】简单
You are given two 32-bit numbers, N and M, and two bit positions, i and j. Write a method to insert M into N such that M starts at bit j and ends at bit i. You can assume that the bits j through i have enough space to fit all of M. That is, if M = 10011, y原创 2020-11-17 17:38:11 · 193 阅读 · 0 评论 -
LeetCode C++ 868. Binary Gap【Bit Manipulation】简单
Given a positive integer n, find and return the longest distance between any two adjacent 1's in the binary representation of n. If there are no two adjacent 1's, return 0.Two 1's are adjacent if there are only 0's separating them (possibly no 0's). The d原创 2020-11-14 15:39:46 · 309 阅读 · 0 评论 -
LeetCode C++ 剑指 Offer 15. 二进制中1的个数【Bit Manipulation】简单
请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。示例 2:输入:00000000000000000000000010000000输出:1解释:输入的二进制串 000000000000原创 2020-11-13 14:19:11 · 139 阅读 · 0 评论 -
LeetCode C++ 1486. XOR Operation in an Array【Math/Bit Manipulation】简单
Given an integer n and an integer start .Define an array nums where nums[i] = start + 2 * i (0-indexed) and n == nums.length .Return the bitwise XOR of all elements of nums.Example 1:Input: n = 5, start = 0Output: 8Explanation: Array nums is equal to原创 2020-11-12 13:36:58 · 190 阅读 · 0 评论 -
LeetCode C++ 1342. Number of Steps to Reduce a Number to Zero【Bit Manipulation】简单
Given a non-negative integer num, return the number of steps to reduce it to zero. If the current number is even, you have to divide it by 2, otherwise, you have to subtract 1 from it.Example 1:Input: num = 14Output: 6Explanation: Step 1) 14 is even;原创 2020-11-12 00:13:32 · 169 阅读 · 0 评论 -
LeetCode C++ 1318. Minimum Flips to Make a OR b Equal to c【位操作】简单
Given 3 positives numbers a, b and c. Return the minimum flips required in some bits of a and b to make ( a OR b == c ). (bitwise OR operation).Flip operation consists of change any single bit 1 to 0 or change the bit 0 to 1 in their binary representation原创 2020-11-06 17:51:55 · 199 阅读 · 0 评论 -
LeetCode 1356. 根据数字二进制下 1 的数目排序【递推预处理或查表计算,位运算,排序】简单
Given an integer array arr. You have to sort the integers in the array in ascending order by the number of 1’s in their binary representation and in case of two or more integers have the same number of 1’s you have to sort them in ascending order.Return t原创 2020-11-06 17:45:19 · 301 阅读 · 0 评论 -
LintCode C++ 82. Single Number【Bit Manipulation】简单
Given 2 * n + 1 numbers, every numbers occurs twice except one, find it.Example 1:Input:[1,1,2,2,3,4,4]Output:3Explanation:Only 3 appears onceExample 2:Input:[0,0,1]Output:1Explanation:Only 1 appears onceChallenge:One-pass, constant extra spac原创 2020-11-05 01:23:31 · 157 阅读 · 0 评论 -
LeetCode C++ 401. Binary Watch【枚举/位操作】简单
A binary watch has 4 LEDs on the top which represent the hours (0-11), and the 6 LEDs on the bottom represent the minutes (0-59).Each LED represents a zero or one, with the least significant bit on the right.For example, the above binary watch reads “3:原创 2020-11-04 00:00:31 · 195 阅读 · 0 评论 -
LeetCode C++ 面试题 17.04. Missing Number LCCI【位操作/数学】简单
An array contains all the integers from 0 to n, except for one number which is missing. Write code to find the missing integer. Can you do it in O(n) time?Note: This problem is slightly different from the original one the book.Example 1:Input: [3,0,1]原创 2020-11-02 21:15:25 · 144 阅读 · 0 评论 -
LeetCode 371. Sum of Two Integers【递归/迭代/位运算】中等
Calculate the sum of two integers a and b , but you are not allowed to use the operator + and - .Example 1:Input: a = 1, b = 2Output: 3Example 2:Input: a = -2, b = 3Output: 1题意:不使用运算符 + 和 - ,计算两整数 a 、b 之和。解法1 递归做过的题目:class Solu原创 2020-10-29 01:02:02 · 189 阅读 · 0 评论 -
LeetCode C++ 面试题 17.01. Add Without Plus LCCI【Bit Manipulation】简单
Write a function that adds two numbers. You should not use + or any arithmetic operators.Example:Input: a = 1, b = 1Output: 2Note:a and b may be 0 or negative.The result fits in 32-bit integer.题意:设计一个函数把两个数字相加。不得使用 + 或者其他算术运算符。注意,a, b 均可能是负数或 0 ,原创 2020-10-28 00:43:07 · 163 阅读 · 0 评论 -
LeetCode 405. Convert a Number to Hexadecimal【位操作】简单
Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two’s complement method is used.Note:All letters in hexadecimal (a-f) must be in lowercase.The hexadecimal string must not contain extra leading 0 s. If the number原创 2020-10-03 10:38:04 · 259 阅读 · 0 评论