有营养的算法笔记
文章平均质量分 90
一个追梦的少年
一个山里的少年,双非学校努力中
展开
-
有营养的算法笔记(八)
1.题目描述2.解题思路3.对应代码数字转换1.题目描述2.解题思路3.对应代码K递增子序列1.对应letecode链接2.题目描述3.解题思路4.对应代码思考?如果从非递减改成严格递增此时又该怎么做?举个例子,现在每 k 个数选一个数,假设选出来的数组是 [3,2,4,5,5,6,6]。每个数减去其下标后就是 [3,1,2,2,1,1,0]。对这个数组中的正整数求最长非降子序列,那就是 [1,1,1]了,对应原始数组的 [,2,,,5,6,],这三个数字保留,其余数字修改完成后就是 [1,2原创 2022-10-28 22:27:32 · 1597 阅读 · 1 评论 -
有营养的算法笔记(七)
1.题目描述2.解题思路3.对应代码上面这个代码非常的暴力,就是所有的情况我们全部都尝试一遍。不断的更新答案,够暴力哈哈哈哈。4.方法二:贪心方法二就是贪心,怎么贪了就是我遇到ab或者ba我就把它给消除掉。所以了我们可以使用一个栈,每次遍历到一个字符的时候我们就去栈里面看看这个栈里面的字符能否和我组成ba或者是ab如果能我们将栈里面的元素弹出即可。最后遍历栈里面的元素生成字符串返回即可,下面我们来看看如何来实现代码6.对应测试代码执行乘法的最大分数1.对应letecode链接2.题目描述3.解题思原创 2022-10-22 19:50:33 · 1730 阅读 · 6 评论 -
有营养的算法笔记五
圆心所对应的角是直角三角形注意此时这个钝角三角形是以a作为开头的钝角三角形,所以我们只要看这个范围内点的个数有几个在利用排列组合就可以求出以a作为开头的钝角三角形的个数,同样的我们在求以b开头以d开头的情况下钝角三角形的数量就可以了。这条合法路径的代表,就是x, a, b, c, y所组成的集合,我们叫做代表集合如果从b到y,还有一条路径叫(b, a, c, x, y),那么(x, a, b, c, y)和(b, a, c, x, y)是同一个代表集合,返回这个无向图中所有合法路径的代表集合数量。原创 2022-10-20 14:53:40 · 2692 阅读 · 16 评论 -
有营养的算法笔记(六)
1.对应letecode链接喧闹和富有2.题目描述3.解题思路4.对应代码完成任务的天数1.本题为某家公司的笔试题再这里没有这个测试链接,再这里只给出解题思路和代码2.题目描述3.解题思路4.对应代码需要的面试官数量1.同样的本题是公司的笔试题,没有这个测试连接在这里给出解题思路和这个代码。2.题目描述3.解题思路4.对应代码原创 2022-10-08 21:30:27 · 1097 阅读 · 5 评论 -
有营养的算法笔记(四)
本题的解题思路也比较的容易想到,题目说的是再k进制下求1到m的当中1的数量但是要求1的数量必须要大于等于n,要我们找到最小的m让1到m当中1的数量要比n要大。这一看就是明显的二分。思路很简单,最重要的是k进制下1到m的数量该如何求,这个如果不是很明白的老铁可以去看我以前的博客,再这里就不重复进行赘述。按照题目的意思,如果我们将这颗二叉树的节点放到一个容器当中其实就是将这个容器里面的元素左移k元素然后再将上一层的父亲指针指向调整好的这一层,没一层都这么干。最后将根节点返回即可。1.对应letecode链接。原创 2022-10-07 20:22:55 · 623 阅读 · 3 评论 -
有营养的算法笔记(三)
1.对应letecode链接知晓秘密的专家2.题目描述3.解题思路4.对应代码魔法数组1.本题为美团的笔试题,所以了没有笔试链接。在这里只给出代码和思路。2.题目描述3.解题思路但是这样的时间复杂度是O(NN)的时间复杂度,每次更新都需要进行遍历才能更新完毕。其实这个枚举行为可以使用线段树进行优化将时间复杂度降低到O(NlogN).下面我们来看看使用线段树进行优化的版本对应总代码最近公共祖先IV1.对应letecode链接2.题目描述3.解题思路4.对应代码原创 2022-10-06 14:50:08 · 1183 阅读 · 1 评论 -
有营养的算法笔记(二)
1.本题为某公司的笔试题,所以没有这个测试链接。在这里只给出代码和思路。2.题目描述3.解题思路4.对应代码但是这样的方式是最暴力的所有节点都搞一遍时间复杂都有点高。下面我们来看看迪结特斯拉算法怎么来解这个题1.第一步和暴力解一样需要生成邻接表,并且需要求这个最小值这一步还是不变的2.准备一个优先级对象小根堆和一个visit数组标记某个节点是否从堆中弹出过,如果已经在堆当中弹出过再次弹出的时候直接忽略调因为第一次弹出的距离是最小的。3.一开始先将x这个节点加入到优先级队列当中加入的形式为Node类原创 2022-10-05 08:05:58 · 8030 阅读 · 10 评论 -
有营养的算法笔记(一)
这个题了直接干就是了深度优先遍历,先遍历其孩子节点将其孩子节点处理完毕之后用一个容器保存好如果一个节点孩子节点被全部删除了,并且它自己也不是黑色节点那么这个节点给上层返回nullptr,否则这个更新这个节点的孩子节点并返回。最容易想到的就是遍历这个范围内的每一个数字,求每个数字当中二进制为1的数量如果数量等于target我们就累加答案。限制:0原创 2022-10-03 15:41:17 · 1797 阅读 · 7 评论