会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
nilbook
为了月薪过万努力
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
下一页
2020年10月9日
DFS深度优先遍历
摘要: dfs是最广泛的搜索算法,通俗讲就是:一条路走到黑,通过暴力枚举,将所有可能的情况一一枚举,不断地试探来找到解 对每一个可能的分支路径深入到不能再深入,而且每个顶点只访问一次。 dfs一般借助递归来实现: 1 void dfs(int deep){ 2 if(到达边界){ 3 //做一些处理后返回
阅读全文
posted @ 2020-10-09 22:48 nilbook
阅读(188)
评论(0)
推荐(0)
2020年10月6日
素数筛法详解:欧拉筛素数
摘要: 当数据量很大时,我们不能一个一个去判断每个数是否为素数,那么我们可以采用欧拉筛来做 由于埃氏筛会存在某个合数多次被筛的情况,所以 欧拉筛的核心思想就是:让每个合数只被它的的最小质因子筛选一次,没有重复 欧拉筛:时间复杂度为O(n),所以也称为线性筛,但只能筛到1e8这么大 1 const int m
阅读全文
posted @ 2020-10-06 19:58 nilbook
阅读(1508)
评论(0)
推荐(0)
二叉树的层序遍历(队列+BFS)
摘要: 由BFS得到的层序结果是一个一位数组,而我们要得到二维数组,则需要: 在每一层遍历开始前,先记录队列中的 结点数量 n(也就是这一层的结点数量),然后一口气处理完这一层的 n 个结点。 在while循环的每一轮,都是将当前层的结点全部出队,再将下一层的所有结点入队,就实现了层次遍历 1 /** 2
阅读全文
posted @ 2020-10-06 17:40 nilbook
阅读(258)
评论(0)
推荐(0)
2020年10月4日
LeedCode刷题:5516.警告一小时内使用相同员工卡
摘要: 力扣公司的员工都使用员工卡来开办公室的门。每当一个员工使用一次他的员工卡,安保系统会记录下员工的名字和使用时间。如果一个员工在一小时时间内使用员工卡的次数大于等于三次,这个系统会自动发布一个 警告 。 给你字符串数组 keyName 和 keyTime ,其中 [keyName[i], keyTim
阅读全文
posted @ 2020-10-04 15:25 nilbook
阅读(143)
评论(0)
推荐(0)
2020年9月23日
LeedCode刷题:617.合并二叉树
摘要: 合并二叉树,叶子叠加合并 创建新的root结点,一个一个的将两颗二叉树的结点叠加起来 1 class Solution { 2 public: 3 TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) { 4 if(!t1&&!t2){ 5 return
阅读全文
posted @ 2020-09-23 00:38 nilbook
阅读(110)
评论(0)
推荐(0)
2020年9月3日
LeedCode刷题:129.求根到叶子节点数字的之和
摘要: 给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。 例如,从根到叶子节点路径 1->2->3 代表数字 123。 计算从根到叶子节点生成的所有数字之和。 解题思路:dfs深度优先遍历搜索,本质是搜索叶子结点,边搜索边更新tmp的值——不是叶子结点就将tm
阅读全文
posted @ 2020-09-03 00:55 nilbook
阅读(138)
评论(0)
推荐(0)
2020年9月1日
LeedCode刷题:1567.乘积为正数的最长子数组的长度
摘要: 给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度。 一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。 请你返回乘积为正数的最长子数组长度。 动态规划求解,根据当前元素来填正负dp表的状态 1 class Solution { 2 public: 3 /* 初始化 po
阅读全文
posted @ 2020-09-01 02:25 nilbook
阅读(318)
评论(0)
推荐(0)
LeedCode刷题:1566.重复至少 K 次且长度为 M 的模式
摘要: 给你一个正整数数组 arr,请你找出一个长度为 m 且在数组中至少重复 k 次的模式。 模式 是由一个或多个值组成的子数组(连续的子序列),连续 重复多次但 不重叠 。 模式由其长度和重复次数定义。 如果数组中存在至少重复 k 次且长度为 m 的模式,则返回 true ,否则返回 false 。 解
阅读全文
posted @ 2020-09-01 01:49 nilbook
阅读(234)
评论(0)
推荐(0)
2020年8月25日
LeedCode刷题:1561.你可以获得的最大硬币数(贪心+双指针)
摘要: 有 3n 堆数目不一的硬币,你和你的朋友们打算按以下方式分硬币: 每一轮中,你将会选出 任意 3 堆硬币(不一定连续)。Alice 将会取走硬币数量最多的那一堆。你将会取走硬币数量第二多的那一堆。Bob 将会取走最后一堆。重复这个过程,直到没有更多硬币。给你一个整数数组 piles ,其中 pile
阅读全文
posted @ 2020-08-25 01:23 nilbook
阅读(297)
评论(0)
推荐(0)
2020年8月24日
LeedCode刷题:1557.可以到达所有点的最少点数
摘要: 给你一个 有向无环图 , n 个节点编号为 0 到 n-1 ,以及一个边数组 edges ,其中 edges[i] = [fromi, toi] 表示一条从点 fromi 到点 toi 的有向边。 找到最小的点集使得从这些点出发能到达图中所有点。题目保证解存在且唯一。 你可以以任意顺序返回这些节点编
阅读全文
posted @ 2020-08-24 12:08 nilbook
阅读(260)
评论(0)
推荐(0)
上一页
1
2
3
4
下一页
公告