![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 52
不知名唐某人
这个作者很懒,什么都没留下…
展开
-
【leetcode】647. 回文子串
647. 回文子串题目链接思路分析代码实现题目链接647. 回文子串思路分析中心扩展算法,把当前字符当成中心,向两端进行拓展,计算有多少字符串存在的问题就是我们的中心有可能有一个有可能有两个,因此中心拓展算法,要分别计算以当前字符为中心和以当前字符以及当前字符写一个字符作为中心将两种方法的结果加起来就是最终的结果代码实现class Solution {public: int countSubstrings(string s) { //双指针法原创 2021-08-18 16:05:43 · 321 阅读 · 0 评论 -
【leetcode】93. 复原 IP 地址
93. 复原 IP 地址题目链接思路分析代码实现题目链接93. 复原 IP 地址思路分析既然是复原IP地址,那么就必然需要一个判断是否符合IP的函数,其次我们对于一段处理好的子串,需要将其提取出来,以及在回溯的时候,我们要将这一段数据删除,这几个函数的边界处理问题时需要注意的,最后,如果在某一段发现数据不合格,就说明这样的切割方法是没有结果过的,直接跳出就可以代码实现class Solution {public: string path; vector<strin原创 2021-08-18 15:21:39 · 354 阅读 · 0 评论 -
【leetcode】131. 分割回文串
131. 分割回文串题目链接思路分析代码实现题目链接131. 分割回文串思路分析既然是要分割回文子串,那么就必须判断回文子串,所以需要一个判断回文子串的方法,其次我们要将处理好的回文子串保存起来。这道题目必然需要采用回溯法来进行处理,如果当前字串已经是回文串了,就保存起来,如果不是,继续向下寻找。终止条件就是当寻找的索引**index >= s.size() **的话,就说明已经超出了范围代码实现class Solution { vector<string>原创 2021-08-18 14:29:07 · 186 阅读 · 0 评论 -
【leetcode】1530. 好叶子节点对的数量
这里写目录标题题目链接思路分析代码实现题目链接1530. 好叶子节点对的数量思路分析对于好叶子节点,就是要求两个节点间的距离小于给定值,因此,我们需要存储节点的距离,那么当访问当根节点,说明此时节点距离为0此时返回0,当上一层看到叶子节点时,计算叶子节点距离本层节点距离为1,然后存储起来,对于右子树也是同样的计算方式,这样就可以得到父节点左右子树孩子的深度,然后在每一层对于大于distance的节点数量进行累加,然后在返回上一层,每一层都存储这每一叶子节点的深度。在一层进行判断最终就能得原创 2021-08-15 21:56:19 · 155 阅读 · 0 评论 -
【leetcode】200. 岛屿数量
这里写目录标题题目链接思路分析代码实现题目链接200. 岛屿数量思路分析题目中要求求解网格中岛屿中的数量,马么问题就在于如何判断是否是岛屿从题目中可以看出,只要是连通的陆地就被视为是一块岛屿,因此题目被转化为求解多少陆地连在一起,可以采用深度优先搜索,为了防止被重复遍历, 将我们搜素过的陆地都置为0代码实现class Solution {public: void check(vector<vector<char>>& grid, int i原创 2021-08-15 10:35:02 · 103 阅读 · 0 评论 -
[leetcode]378. 有序矩阵中第 K 小的元素
378. 有序矩阵中第 K 小的元素题目链接思路分析代码实现题目链接378. 有序矩阵中第 K 小的元素思路分析题目中又一次提到了有序,就能够猜想能够使用二分法那么如果要使用二分的话,我们就需要左右边界,我们寻找的是某一个元素,因此我们考虑使用数组的值域,在数组中,左上和右下分别是最小和最大值,我们可以通过求解中值的方法来不断缩小范围当我们得到一个中值之后,需要注意的就是如何计算比中值小的数字的数量从最后一行开始统计,若当前值小于mid,由于每一列也都是升序排列,所以这一列也都小于mi原创 2021-08-14 21:59:00 · 118 阅读 · 0 评论 -
剑指 Offer 16. 数值的整数次方C++
C++快速幂题目链接思路分析解题代码题目链接50. Pow(x, n)思路分析这道题目就是想让我们实现库函数pow(x, n)我们借助这道题目来讲解一种高效的计算高次幂的方式首先我们来看一个数3 ^ 153 ^ 15 = 3 * 3 * 3 * …*33 ^ 15 = 3^1 * 3^2 * 3^4 * 3^8我们可以发现15的二进制就为 0000 1111刚好符合我们的第二种计算公式以此类推7 ^ 20 =20的二进制为 0001 0100所以 7 ^ 20 = 7 ^原创 2021-05-03 18:27:03 · 133 阅读 · 0 评论 -
力扣回文数C++
力扣回文数C++题目链接思路分析解题代码题目链接力扣回文数C++思路分析详细思路都在注释中,简单易理解解题代码class Solution {public: bool isPalindrome(int x) { //当使用将int数转为字符串时 虽然能满足要求 但会出现空间损耗 //因此考虑使用反转数字进行比较,但单纯的反转数字进行比较 会导致反转后的数字溢出 //综合考虑翻转一半数字 //排除掉不可能情况 若数字为负数或者尾数为0 则return原创 2021-05-03 11:06:33 · 265 阅读 · 0 评论 -
力扣整数反转
力扣整数反转题目链接思路分析解题代码题目链接力扣整数反转思路分析这道题目思路相对简单,我们对于反转一个数已经很娴熟了,需要使用到的是我们的 / 操作和 % 操作/ 也就是我们常用的除法,通常用来对一个数取商 5 / 2 = 2 8 / 2 = 4% 是我们常用的取余操作,通常用来对一个数取其余数 5 % 2 = 1 8 % 2 = 0这道题目需要注意的一个点就是我们需要考虑整数数值溢出对于1534236469 这个整数来说,反转之后的结果超出了我们整数所能表示的范原创 2021-05-03 10:44:26 · 148 阅读 · 0 评论 -
二分查找C++详解
二分查找C++定义思想代码实现进阶指南定义首先我们来看一下二分查找的定义二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列思想可以看到我们用粗体勾画出来的部分顺序存储结构和 关键字有序 顺序存储结构表明我们的大部分应用场景是在数组中,关键字有序则表明了我们所处理的数据是一个有序序列综合两个条件,可以得到我们使用二分查找的场景为有序数组,请注意,这里的有序并不是指完全有序,部分有序也是可以考原创 2021-04-28 19:22:05 · 1639 阅读 · 0 评论 -
二分查找C++进阶元素查找
二分查找C++进阶元素查找题目链接思路分析解题代码题目链接元素查找思路分析题目意思解释过来说我们对原来已有有序的数组进行旋转,旋转之后我们再去查找里面是否存在我们期望的值,既然提到了查找,最容易想到的就是我们进行穷举遍历,这道题目同样可行,但是我们可以观察到我们旋转之后的数组是局部有序的就是说,我们把数组以旋转点分割成两部分,他们都是有序的,既然数组有序,那么我们能不能够尝试更加优秀的二分查找来解决这道问题,答案当然是可行的首先我们将旋转数组看成图中的形状既然要二分,那么显而易见的是,当我们原创 2021-04-27 22:33:32 · 277 阅读 · 0 评论 -
八大排序之归并排序C++详解
八大排序之归并排序C++详解题目链接思路分析解题代码题目链接这道题目链接是用来测试我们所写算法的正确性排序数组思路分析我们想利用这道题目来讲解归并排序,首先我们来看一下归并排序的定义归并排序,是创建在归并操作上的一种有效的排序算法。算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。基本思想归并排序是用分治思想,分治模式在每一层递归上原创 2021-04-26 22:26:54 · 1370 阅读 · 1 评论 -
八大排序之快速排序C++详解/C++快速排序/快排
八大排序之快速排序C++详解题目链接思路分析解题代码题目链接这道题目链接可以用来测试我们所书写的算法是否正确 排序数组思路分析首先我们来看一些快速排序的定义快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。我们可以看到的是快速排序首先需要确定一个基准元素,然后经过一趟快原创 2021-04-26 22:11:38 · 5047 阅读 · 8 评论 -
力扣1011. 在 D 天内送达包裹的能力C++
力扣1011. 在 D 天内送达包裹的能力C++题目链接思路分析解题代码题目链接 在 D 天内送达包裹的能力思路分析对于这道题目,我们首先想到的第一种办法就是,我们的最大运载能力是所有包裹重量的和,那么最低运载能力就是1因此我们就可以使用便利的方法进行统计,统计出我们能满足D天内将所有货物搬运的最低运载能力对于运载能力进行考虑时,当我们想通过遍历进行处理时,当我们当前的重量和大于我们给出的最低运载能力时, 就说明一趟不能装完,因此在给出最低运载能力的条件下,我们运载天数需要+1,最后和D进行原创 2021-04-26 16:46:31 · 161 阅读 · 0 评论 -
牛客C++不要二
牛客C++不要二题目链接思路分析解题代码题目链接牛客C++不要二思路分析这道题目我们需要使用贪心的思想,我们先在第一个位置放置蛋糕,并同时将与该位置距离为2的位置置为-1,当我们之后遇到这个位置的我们就不进行考虑,我们局部最优就是在这一次尽可能多的放置蛋糕,以此来达到全局最优解题代码#include <iostream>#include <vector>using namespace std;int main(){ //我们使用贪心的思想,我们在棋盘原创 2021-04-25 17:38:34 · 107 阅读 · 0 评论 -
字符串相加C++
字符串相加C++题目链接思路分析解题代码题目链接字符串相加C++思路分析对于整数相加我们都很熟悉,因此我们需要整数相加进行分解,对于整数相加,我们从低位开始,进行相加,如果相加大于10,进位为1,相加如果小于10,进位为0因此我们借此考虑字符串加法,首先要有一个进位,我们初始化进位为0我们从字符串尾部开始,将两个字符串尾部相加, a = (len1 >= 0) ? num1[len1--] - '0' : 0; b = (len2 >= 0) ?原创 2021-04-25 17:24:31 · 2431 阅读 · 0 评论 -
牛客网剑指offer把字符串转换成整数C++
牛客网剑指offer把字符串转换成整数C++题目链接思路分析解题代码题目链接把字符串转换成整数思路分析我们对这道题目进行分析,如果我们想要将字符串转换为整数,那么我们首先就要考虑字符串中的空格,所以1: 去除字符串的首部空格 由于需要删除所有的空格, 所以我们需要使用循环处理在我们处理掉空格之后,我们观察示例可得字符串中有可能存在符号位,因为我们需要记录符号位2:记录符号位此时我们就可以开始存储数字了,我们将数字存储到一个新字符串中,稍后统一处理对于出现的其他字符,我们就认为输入不合法原创 2021-04-25 16:34:39 · 148 阅读 · 0 评论 -
剑指 Offer 25. 合并两个排序的链表
剑指 Offer 25. 合并两个排序的链表题目链接思路分析解题代码题目链接剑指 Offer 25. 合并两个排序的链表思路分析这道题目我们能需要引入一个头节点来方便我们进行运算我们先申请一个头节点作为我们新链表的第一个节点然后两个链表依次比较,谁小就加入新链表,最终返回头结点的next 就可以一定要记得释放内存,否则会导致会导致内存泄漏解题代码/** * Definition for singly-linked list. * struct ListNode { *原创 2021-04-21 21:10:52 · 70 阅读 · 0 评论 -
27. 移除元素
27. 移除元素题目链接思路分析解题代码题目链接27. 移除元素思路分析对于这道题目我们可以直接使用快慢指针进行求解,利用慢指针标记数组新的返回位置,利用快指针遍历数组具体解析可以参考leetcode26. 删除有序数组中的重复项解题代码class Solution {public: int removeElement(vector<int>& nums, int val) { //核心想法同昨天的每日一题一样,也是利用双指针方法进行求解原创 2021-04-19 10:57:37 · 76 阅读 · 0 评论 -
剑指 Offer 47. 礼物的最大价值C++
剑指 Offer 47. 礼物的最大价值题目链接思路分析解题代码题目链接剑指 Offer 47. 礼物的最大价值思路分析这道题目读到题目中的最大价值就应该联想到可能需要使用动态规划来对该问题进行求解由于我们拿礼物的方向只能是向右或者向下,所以每一格都面临着两种选择,要么选择向右,要么选择向下,我们自然是要选择这两者中较大的一个,详细解释写在代码的注释里面解题代码class Solution {public: int maxValue(vector<vector<in原创 2021-04-18 22:31:53 · 189 阅读 · 0 评论 -
剑指 Offer 54. 二叉搜索树的第k大节点
剑指 Offer 54. 二叉搜索树的第k大节点题目链接思路分析解题代码题目链接剑指 Offer 54. 二叉搜索树的第k大节点思路分析当我们看到二叉搜索树的时候,就要想着二叉搜索树的特殊性质,二叉搜索树的中序遍历是一个有序数组,中序遍历的遍历顺序是左中右,那么这样的数组顺序是递增的,因此我们考虑使用右中左,这样得到的数组顺序就是一个递减的数组,然后我们统计第K个数,就是我们想要的结果解题代码/** * Definition for a binary tree node. * stru原创 2021-04-18 19:06:01 · 49 阅读 · 0 评论 -
剑指 Offer 22. 链表中倒数第k个节点
剑指 Offer 22. 链表中倒数第k个节点题目链接思路分析解题代码题目链接剑指 Offer 22. 链表中倒数第k个节点思路分析思路1首先我们看到这道题目,第一种思路就是我们先遍历整个链表,得到链表长度,然后同理得到倒数第K个节点,然后从头部找到倒数第K个节点返回就可以得到结果思路2我们重点讲解思路2-- 这道题目与我们之前讲过的leetcode26. 删除有序数组中的重复项可以使用相同的方法,也是使用双指针,我们使用快慢指针,让快指针先走K步,然后快慢指针同时走,这样当快指针走到原创 2021-04-18 18:24:29 · 72 阅读 · 0 评论 -
leetcode26. 删除有序数组中的重复项
26. 删除有序数组中的重复项题目链接思路分析解题代码题目链接26. 删除有序数组中的重复项思路分析对于这道题目,题目着重强调了原地修改数组,意味着我们不能够申请额外的空间,只能够在原数组上做修改,那么我们就需要一个指针标记我们最终返回的新位置,一个指针区负责遍历整个数组因此我们的思路就比较清晰了,使用双指针,slow指针标记我们返回的数组尾的位置,如果slow指针和fast指针指向的数字相同,意味着我们fast指针需要后移去寻找第一个不同于slow指针指向的结果,当fast和slow指向原创 2021-04-18 17:37:58 · 81 阅读 · 0 评论 -
783. 二叉搜索树节点最小距离C++
783. 二叉搜索树节点最小距离题目链接思路分析解题代码题目链接783. 二叉搜索树节点最小距离思路分析本题题目给出了一个二叉搜索树,那么对于一个二叉搜索树,其对大特点就是二叉搜索树的中序遍历是一个有序数组,且数字排列为从小到大我们直接遍历树,就能够得到一个有序数组,然后我们就可以直接计算数组中的最小差值,由于我们数组排序为从小到大,所以不用考虑出现负值情况解题代码/** * Definition for a binary tree node. * struct TreeNode {原创 2021-04-13 19:17:11 · 72 阅读 · 0 评论 -
剑指 Offer 40. 最小的k个数C++
剑指 Offer 40. 最小的k个数C++题目链接思路分析解题代码题目链接剑指 Offer 40. 最小的k个数思路分析这是一道大厂常见题目,经常在面试中会遇到,下面介绍两种思路思路1可以直接使用sort方法,对数进行排序,然后把前k个数返回就可以思路2借助堆排序的思想,由于题目需要最小的K个数,因此我们可以先建立一个大小为K的大顶堆,然后将堆顶元素与未入堆的元素进行比较,如果该元素小于堆顶元素,则与之交换,重复此类过程,最终堆中数据就是最小的K个数解题代码class S原创 2021-04-12 19:12:28 · 100 阅读 · 0 评论 -
剑指 Offer 42. 连续子数组的最大和
剑指 Offer 42. 连续子数组的最大和题目链接思路分析解题代码题目链接剑指 Offer 42. 连续子数组的最大和思路分析题目的意思是求解子数组的最大和,那么显然,子数组最大和一定是大于等于0的我们假设数组首部作为我们的开始位置,当count小于0的时候,说明此时子数组之和已经小于0了,必然不可能作为我们的结果,因此需要把当前位置作为新的开始位置进行计算,sum就是每次取count的最大值,作为结果解题代码class Solution {public: int maxSu原创 2021-04-11 21:16:51 · 55 阅读 · 0 评论 -
剑指 Offer 55 - I. 二叉树的深度C++
剑指 Offer 55 - I. 二叉树的深度题目链接解题思路解题代码题目链接剑指 Offer 55 - I. 二叉树的深度解题思路该题我们需要从根节点开始,分别求解左右孩子的深度最终高度为左右孩子的高度中的较大值加上本层的1解题代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; *原创 2021-04-11 20:59:26 · 183 阅读 · 0 评论 -
剑指 Offer 27. 二叉树的镜像C++
剑指 Offer 27. 二叉树的镜像题目链接思路分析解题代码题目链接剑指 Offer 27. 二叉树的镜像思路分析对于这道题目,我们需要交换根节点的两个孩子,然后分别交换左右孩子的孩子因此,显然我们需要使用递归地方式首先交换两个孩子节点,然后分别交换左右孩子终止条件就是我们遇到了空节点解题代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *原创 2021-04-11 20:49:31 · 168 阅读 · 0 评论 -
剑指 Offer 58 - II. 左旋转字符串C++
剑指 Offer 58 - II. 左旋转字符串C++题目链接思路分析解题代码题目链接剑指 Offer 58 - II. 左旋转字符串思路分析以示例1举例–>-----> ab cdefg<–<------ ba gfdec----->–> cd efgab解题代码class Solution {public: void reverse(string& str, int start, int end) {原创 2021-04-11 20:38:26 · 59 阅读 · 0 评论 -
剑指 Offer 64. 求1+2+…+nC++
题目链接题目链接解题思路代码实现题目链接解题思路代码实现原创 2021-04-11 20:21:20 · 154 阅读 · 0 评论 -
力扣leetcode77组合C++
力扣leetcode77组合C++题目链接解题思路三级目录题目链接77. 组合解题思路今天这道题目是采用了回溯的思想所谓回溯,就是穷举问题的所有可能性,从中选择合适的结果,返回返回上一层,继续选择。读者已更改能够大三级目录...原创 2021-03-07 21:12:49 · 233 阅读 · 0 评论 -
力扣leetcode513. 找树左下角的值
力扣leetcode513. 找树左下角的值题目链接解题思路代码实现题目链接找树左下角的值解题思路有题目可得我们是要求解最后一行的第一个节点,所以需要遍历整棵树,并且要使用前序遍历,这样才能够实现优先遍历左边的节点那么我们来讨论叶子节点的特性,即该节点的左孩子为空且右孩子也为空既然要求解最后一行,那么就需要维护一个数来表示当前节点所在深度,还需要一个值来将合适值返回代码实现/** * Definition for a binary tree node. * struct TreeNo原创 2021-03-06 13:46:38 · 167 阅读 · 0 评论 -
力扣leetcode左叶子之和C++
左叶子之和题目链接解题思路代码实现题目链接左叶子之和解题思路我们可以看到题目所需要求解的是左叶子,那么左叶子的定义为:若一节点的左孩子不为空且左孩子的左右孩子都为空那么这个节点就为左叶子节点。并且题目要求返回的值为一个int值,所以我们需要构建一个带参的函数,此外考虑遍历顺序我们先判断当前节点是否左叶子,在进行递归判断左右孩子因此是一种前序遍历的方式代码实现/** * Definition for a binary tree node. * struct TreeNode { *原创 2021-03-06 13:11:16 · 120 阅读 · 0 评论 -
力扣leetcode栈和队列相互实现
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录题目链接用栈实现队列用队列实现栈一、用栈实现队列解题思路代码实现二、用队列实现栈解题思路代码实现题目链接用栈实现队列用队列实现栈一、用栈实现队列解题思路我们先复习一下栈和队列的基本知识栈:栈是一种先进后出的数据结构,它仅允许从一端进行插入和和删除操作队列队列是一种先进先出的数据结构,它允许从队列的一端插入从另一端删除那么对于这道题来说,用两个栈实现队列我们先考虑入栈的情况,当1, 2入栈后,此时如果要原创 2021-03-05 20:53:39 · 99 阅读 · 0 评论 -
力扣leetcode N叉树的遍历
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录力扣leetcode N叉树的遍历题目链接一、题目1: N 叉树的前序遍历解题思路解题代码二、题目2解题思路解题代码力扣leetcode N叉树的遍历题目链接589. N 叉树的前序遍历590. N 叉树的后序遍历一、题目1: N 叉树的前序遍历解题思路参看 二叉树的三种遍历解题代码/*// Definition for a Node.class Node {public: int va原创 2021-03-03 21:41:50 · 144 阅读 · 2 评论 -
力扣leetcode226. 翻转二叉树
力扣leetcode226. 翻转二叉树题目链接226. 翻转二叉树思路观察可得我们只需要逐个翻转二叉树结点,最终就可以得到一个翻转二叉树step1确定终止条件如果当前节点为空时,就返回if(!root) return nullptr;step2实现单趟递归我们采用前序遍历的方式,先翻转当前节点左右孩子,在翻转左右子树swap(root->left, root->right);invertTree(root->left);invertTree(root原创 2021-03-03 21:22:28 · 123 阅读 · 1 评论 -
力扣leetcode144. 二叉树的三种遍历C++
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录二叉树的遍历题目链接一、题目1代码实现二、题目2代码实现三、题目3代码实现二叉树的遍历题目链接144. 二叉树的前序遍历94. 二叉树的中序遍历145. 二叉树的后序遍历一、题目1对于这道题目而言,很多人会自然的想到使用递归处理,但问题的关键在于如何将便利的结果输出到数组中,所以我们需要考虑递归的参数,必须要使用一个数组作为参数,在递归过程中不断的将节点值输出到数组中代码实现/** * Definition原创 2021-03-03 21:07:10 · 184 阅读 · 1 评论 -
力扣leetcode剑指 Offer 56 - I. 数组中数字出现的次数C++
剑指 Offer 56 - I. 数组中数字出现的次数剑指 Offer 56 - I. 数组中数字出现的次数经过前面两道题目的训练,相信很多人一看到题目就想到了使用位运算来进行求解,但是如何恰当地使用位运算和在何处使用位运算成为了一个难点我们来观察题目,首先可以看到一个数组中除了两个数字之外其余数字都出现了两次,我们考虑前面做过的第一道题目,如果是只有一个数字出现了一次的话,那么我们呢可以轻松地利用逐元素异或的思想,那么如何把问题转化为数组中只有一个出现一次的元素呢 我们需要想办法对数组进行分组原创 2021-03-02 22:23:01 · 245 阅读 · 0 评论 -
力扣leetcode136. 只出现一次的数字C++
力扣leetcode136. 只出现一次的数字C++136. 只出现一次的数字对于这道题目我们可以考虑使用位运算的思想来进行求解知识点回顾异或运算a^a = 0;a^a ^b = b;a^ b^ c = a^c ^ b;我们可以看到两个相同的数 异或的结果为0因此这道题目只需要将庶族内的所有元素逐一异或,就可以得到结果代码如下class Solution {public: int singleNumber(vector<int>& nums) {原创 2021-03-02 21:48:18 · 171 阅读 · 0 评论 -
力扣leetcode剑指 Offer 56 - II. 数组中数字出现的次数 IIC++
力扣leetcode剑指 Offer 56 - II. 数组中数字出现的次数 IIC++剑指 Offer 56 - II. 数组中数字出现的次数 II思路:这道题目可以参考之前的两道题目,是之前两道题目的升级版我们自然考虑到使用位运算来解决与之前两道题目不同的是我们需要考虑维护一个对比特位计数的数组,我们对每个数字进行比特位计数,然后统计数组每个位上1的个数。我们举例来看从图中我们可以看出,我们对一个数组进行比特位统计,得到的结果对3取余,就可以得到结果代码如下class Solu原创 2021-03-02 21:37:54 · 282 阅读 · 0 评论