![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode专题笔记
文章平均质量分 81
wzqCSDN0214
这个作者很懒,什么都没留下…
展开
-
LeetCode刷题笔记(10)位运算
位运算主要有:按位与&,按位或|,按位异或^,~取反,<<算术左移,>>算术右移等。常用位运算技巧1)n&(n-1)可以把n最右边的1改为0,重复该过程,就可以得到n中包含的1的个数。2)n&(-n)可以把n除最右边以外的1全部改为0。461. 汉明距离先对x和y进行按位异或运算得n,再用n&(n-1)的技巧统计其中1的个数。class Solution {public: int hammingDistance(原创 2022-01-24 12:01:12 · 312 阅读 · 0 评论 -
LeetCode刷题笔记(9):数学问题
204. 计数质数确定<n的质数个数方法一:埃氏筛从2开始把2、3、4、5....的对应倍数标记为非质数,剩下的就是质数。class Solution {public: int countPrimes(int n) { if(n<=2) return 0; vector<bool> prime(n,false); int cnt = n-2;//统计质数个数,-2是去掉1和n for(int i=2;i*i&原创 2022-01-16 12:32:12 · 3330 阅读 · 0 评论 -
LeetCode刷题笔记(8):分治法
241. 为运算表达式设计优先级方法一:分治法根据运算符,划分为左右位置,分别递归计算左右表达式所有值,再将其组合运算。class Solution {public: vector<int> diffWaysToCompute(string expression) { vector<int> ways;//保存表达式结果 int n = expression.size(); for(int i=0;i<n;i+原创 2022-01-13 11:33:45 · 3182 阅读 · 0 评论 -
LeetCode刷题笔记(7):动态规划练习
213. 打家劫舍 II本题是198题的变形题。把线性的一维数组变成了环形数组,这导致第0个房间和第n-1个房间不能同时抢劫。因此我们可以分成两种情况讨论:1)抢0号房间,然后对[1, n-2]进行动态规划过程;2)不抢0号房间,然后对[1, n-1]进行动态规划过程。class Solution {public: int rob(vector<int>& nums) { int n = nums.size(); int pre1=nu原创 2021-12-31 20:01:16 · 159 阅读 · 0 评论 -
LeetCode刷题笔记(6):动态规划
1、爬楼梯(70)本题在建立状态转移方程时,要注意到每次只能跨1级或2级台阶。这说明第 i 级台阶上一级状态只能是第i-1或第i-2级台阶。设dp[ i ]表示走到第 i 阶台阶的方法数,则dp[i] = dp[i-1] + dp[i-2]。即斐波那契数列。由于每个状态只取决于前两个状态,因此我们没必要一直保存所有过程状态,可以用滚动数组的思想,只保留当前状态的前两个状态。class Solution {public: int climbStairs(int n) { if(原创 2021-12-13 16:07:57 · 246 阅读 · 0 评论 -
LeetCode刷题笔记(5):搜索
1、岛屿的最大面积(695)搜索问题经典模板题,先介绍BFS思路:遍历二维数组每一个位置,如果是0跳过,如果为1,则判断其相邻4个位置是否为1(前提不能出界)。为防止重复访问,增加辅助数组标记,如果入过队则标记已访问。(当然本题可以直接把访问过的结点置为0更简单)直到所有数组被访问。class Solution {public: //辅助方向数组,用于移动访问上下左右4个方向 vector<int> directions{-1,0,1,0,-1};原创 2021-11-29 20:30:05 · 197 阅读 · 0 评论 -
LeetCode刷题笔记(3): 二分法
二分法主要是利用折半查找的思想,对区间进行查找,使O(n)复杂度的时间下降为O(log n),使用时要特别注意边界的开闭情况。1Sqrt(x)(69)不用sqrt函数确定X开方后向下取整的结果。采用二分查找,实质上是找使a*a<=x成立的最大整数a。class Solution {public: int mySqrt(int x) { int low = 0,high = x,ans=-1; //if(x==1) return x; w..原创 2021-11-19 12:45:18 · 816 阅读 · 0 评论