摘要:
双向BFS的模板 翻硬币 阅读全文
摘要:
思路: 1. 第一想法肯定是用DFS模拟倒水操作,因为每个杯子最多就三次操作,然后记录一下每次的状态,但是会超过循环的次数,所以改用栈来模拟循环。 2. 官方题解的数学方法,即如果z是x和y公约数的倍数那么本次操作一定能完成(官方在题解里面推导了,原理没看懂,数学蒟蒻,先记下来好了) 阅读全文
摘要:
判断两字符串是否存在相同元素的思路: 1. 利用python的set() 两字符串进行交(集)运算,如果交集为空表示不存在相同元素 2. (推荐⭐)位运算:一个数字的前26位对应字符串中二十六个字母出现的与否,不同字符串对应的数字,进行与运算,如果结果为0,说明没有相同字符 阅读全文
摘要:
思路: 如何判断三条边能否构成三角形? 三条边从小到大a、b、c当且仅当a+b c,这三条边才能组成三角形 固定最长边,判断另外两条边 阅读全文
摘要:
思路: n的数值很大,python自带的算高精度加减乘还行,除法是真没找到自带方法实现。 所以需要模拟除法的过程,以n/m为例: n = m:商上n // m,n = n % m n 记录n的使用情况(即check[x] = n=x的时候,对应的小数第几位),只要某一次的n已经被访问过了,那么表示出 阅读全文
摘要:
1311. 获取你好友已观看的视频 BFS 思路: 找到第level层的好友,是一层一层寻找所以使用BFS,然后再计数就行了 LCP 3. 机器人大冒险 思路: 第一反映应该是模拟,当然没有这么简单,就超时了。 那么转去判断是否能够到达障碍处,这样需要判断的最多也只有1k+。 如果能够到达某处,必然 阅读全文
摘要:
957. N 天后的牢房 思路: 模拟变换,当N天结合后返回 = 当N非常大的时候,超时 = 一般N很大的时候,这种题目必然存在循环,所以记录找过的状态,一旦出现已经访问过的状态可立即跳出循环。 825. 适龄的朋友 思路: 最直观的就是两层循环暴力,意料之中的超时了。那么就改以人为单位交友,变为以 阅读全文
摘要:
1. 两数之和 总结 可以看到,无论是2、3or4,都是固定除了双指针之外的元素,再用双指针去找剩下的元素,代码几乎没有改变,切记要记得剪枝。 阅读全文
摘要:
700. 二叉搜索树中的搜索 树 给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。 思路: 二叉搜索树的特点为左比根小,右比根大。那么目标结点就有三种可能: 1. 和根一样大,那么直接返回根即可。 阅读全文
摘要:
🎃本次部分没有带题目,因为链表系列的题目有的非常直观,从名字中就能知道到底需要做什么。 21. 合并两个有序链表 203. 移除链表元素 206. 反转链表 24. 两两交换链表中的节点 19. 删除链表的倒数第N个节点 876. 链表的中间结点 阅读全文