- 博客(153)
- 资源 (3)
- 收藏
- 关注
原创 力扣342. 4的幂+1. 两数之和
第一百一十五天 --- 力扣342. 4的幂+1. 两数之和题目一思路:模拟细节代码题目二思路:位运算代码题目一力扣:1. 两数之和思路:模拟1、target是由两个数构成的并且两个数是唯一的答案,我枚举数组中任意一个数之后,只要余下的数出现在了数组里面,就意味着我找到答案了。2、怎么快速的知道要的数到底在不在,用Hash表存上就行,因为答案要的是出现的位置,所以用unordered_map存储,key是数组中的值,value是位置。细节1、要的是数组中两个不同位置上的数,所以需要判断位
2021-12-25 16:05:41 733
原创 力扣371. 两整数之和+2. 两数相加
第一百一十四天 --- 力扣371. 两整数之和+2. 两数相加题目一思路:位运算细节代码题目二思路:直接模拟细节错误想法代码题目一力扣:371. 两整数之和思路:位运算1、因为我们不能够使用任何±有关的东西,所以相关函数等等都被禁止使用,所以只能够通过位运算来达成目的。2、位运算只有两个数 0 1 ,那么01之间的运算法则如下:0+0=01+0=10+1=11+1=0(并且进位)通过以上我们不难发现,其实加法就是两个数按位取异或。3、但是,1+1的时候会存在进位,所以只把两个
2021-12-25 14:51:53 957
原创 力扣236. 二叉树的最近公共祖先+2096. 从二叉树一个节点到另一个节点每一步的方向
第一百一十三天 --- 力扣236. 二叉树的最近公共祖先+2096. 从二叉树一个节点到另一个节点每一步的方向题目一思路:直接模拟代码题目二思路(回溯法)细节代码私人小灶题目一力扣:236. 二叉树的最近公共祖先思路:直接模拟本题是作为我的复习题目,详细题解见:第七天 — 求任意两个节点的公共祖先。1、其实呀,这个问题很简单,在找公共祖先的时候我们得先找到我们自己,并且是找祖先,所以找到自己之后就可以返回了。2、如果我左右都找到了目标,由于二叉树遍历的机制,一定是最近的第一次找到,所以答
2021-12-07 10:41:05 619 1
原创 第 270 场力扣周赛
第一百一十二天 --- 第 270 场力扣周赛题目一思路:直接模拟细节代码附加题目二思路细节代码题目一力扣:2094. 找出 3 位偶数思路:直接模拟1、因为构造所有三位数,所以三次枚举出所有给定数组中的所有数,并保证:<1> 整数为偶数<2> 整数不包含前导零,也就是枚举第一位的时候,要枚举非零数。<3> 三个整数位对应的数组下标不能重复细节为了防止重复枚举,需要一个Hash表来记录已经枚举过的数,防止重复枚举。代码class Solutio
2021-12-07 09:28:54 470
原创 力扣231. 2 的幂+268. 丢失的数字
第一百一十一天 --- 力扣231. 2 的幂+268. 丢失的数字题目一思路细节代码题目二思路代码题目一力扣:231. 2 的幂思路可以自己拿笔写一下,不难发现,所有2的幂次的二进制表示中,都有且只有一个1,所以直接n&(n-1)如果==0,那么就是答案。细节0 以及 -2147483648需要单独判断。代码class Solution {public: bool isPowerOfTwo(int n) { if (n == 0) {//边界条件 return
2021-12-03 11:23:29 482
原创 力扣338. 比特位计数
第一百一十天 --- 力扣338. 比特位计数题目一思路常规进阶(DP)最低设置位最高有效位最低有效位代码常规进阶题目一力扣:338. 比特位计数思路常规对1到n每个数求一下他们中有多少个1即可,这种思路属于直接模拟。时间复杂度较高 : O(nlgn)。进阶(DP)我们自己写一些数,观察二进制位变化可得知,这些东西是有规律的,如果每次都重新计算,会造成大量重复计算,所以我们要观察好,利用已知的一些规律,用已经计算过的,来推出新的数的结果,所以想到了DP。最低设置位我们现在处理到了第
2021-12-03 11:05:00 487
原创 力扣190. 颠倒二进制位+191. 位1的个数
第一百零九天 --- 力扣190. 颠倒二进制位+191. 位1的个数题目一思路常规细节进阶(分治法)代码常规进阶题目二思路常规进阶代码常规进阶题目一力扣:190. 颠倒二进制位思路常规1、所谓颠倒,就是把原来的最右面的位数放在最左面2、所以我们对原串,每次都 &1 取出最右面的位,再 | 进入答案即可3、每次答案<<,原数>>即可。细节一定要注意,答案,应该先移位,流出地方,再进行 | 运算。进阶(分治法)1、我们想,所谓的整体颠倒,我们把32长
2021-12-01 16:10:22 836
原创 力扣400. 第 N 位数字
第一百零八天 --- 力扣400. 第 N 位数字题目一思路代码题目一力扣:400. 第 N 位数字思路1、首先就要读懂题意,这样理解,就相当于吧从1到2^31-1所有数放在一个超长的字符串中,n就相当于读取这个字符串第n位是哪个数字,也就是说答案只可能是0到9中的一个。2、总体计算思路:<1> 通过n的范围先计算出n对应的是个几位数。<2> 对n重整,减去之前那些位数占用的序号数。<3> n/(位数) 得到该数在自己这个大范围内排名<4>
2021-12-01 15:39:50 734
原创 力扣第 66 场双周赛
第一百零七天 --- 力扣第 66 场双周赛题目一思路代码题目二思路:贪心法代码题目三思路代码题目一力扣:2087. 网格图中机器人回家的最小代价思路拿到题目,一定先读好题!!!!!总结一下:这就是到TM的脑筋急转弯。。。。1、乍一看,和我们平时的机器人走路问题,很相似,一定要仔细读题呀!2、他的代价计算规则是,走到第i行,花费rowCosts[i],一次只能走一步。那么我从当前行列直接不绕路的走到目的地,经过的行列,就是固定的3、如果我们不那样直达,而采取非直达,上述花费一定少不了,
2021-11-29 16:10:52 564
原创 力扣第 269 场周赛<前三题>
第一百零六天 --- 力扣第 269 场周赛<前三题>题目一思路代码题目二思路代码题目三思路代码题目一力扣:2091. 从数组中移除最大值和最小值思路其实吧,我们做题,一定要读好题,分析好题意,其实很多时候,题目本身毫无难度,就是个脑筋急转弯罢了。!!!!!!!!!!1、说回本题,只能从头或尾删除元素,那么就3种情况,全从头删除,全从尾删除,从两边删除,就完了,三种情况找最小值就得了。2、唯一需要注意的是在计算步数的时候别算错了。代码class Solution {pub
2021-11-29 15:39:14 442
原创 力扣第 269 场周赛-5941. 找出知晓秘密的所有专家
第一百零五天 --- 力扣第 269 场周赛-5941. 找出知晓秘密的所有专家题目一思路为什么使用并查集算法过程代码题目一力扣:5941. 找出知晓秘密的所有专家思路为什么使用并查集1、开始,专家0和firstPerson都知道了秘密,随着会议的进行,更多的人知道了秘密,比如专家3和专家0开了一次会,专家3就知道了秘密,和他们是同属一个集合了,最终要被发现的,所以这种集合的合并问题,经典的并查集问题。2、详细的并查集操作封装解析见:力扣684冗余连接算法过程1、一定要注意读题,同
2021-11-29 15:19:54 259
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人