leecode 刷题笔记

这篇博客介绍了如何利用异或运算解决数组中只出现一次的数字问题,并探讨了异或的性质和交换律。同时,通过爬楼梯和入室抢劫的例子展示了动态规划在计算最优解上的应用。还提及了快慢指针在链表,特别是环状链表中的使用。

我是打算从leebook 初级算法开始刷起

数组

只出现一次的数字
知识点

异或:运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。
在二进制下,0异或任何数不变,1异或任何数取反
异或其实就是找不同。利用异或的运算特性,在重复数据中去除冗余信息,实现信息增量和数据压缩。
异或运算
这个用到了异或的交换律
a ^ b ^ a = a ^ a ^ b = b
其他类似题1720. 解码异或后的数组

189. 轮转数组

动态规划

爬楼梯

直接递归的话 会超时
尾递归没看懂
f ( n ) f(n) f(n) 指的是要爬到第n阶的方法数
f ( n ) f(n) f(n)= f ( n − 1 ) f(n-1) f(n1)+ f ( n − 2 ) f(n-2) f(n2)
爬到第n阶的方法数的数列也是斐波那契数列

入室抢劫

f ( n ) f(n) f(n)=max( f ( n − 1 ) f(n-1) f(n1),arr[n]+ f ( n − 2 ) f(n-2) f(n2) )

链表

快慢指针在单向链表和环状链表中都可以使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值