算法
文章平均质量分 89
一些常用的算法简介
Truth、
这个作者很懒,什么都没留下…
展开
-
贪心算法 x 优先级队列
贪心算法 x 优先级队列1. 预备知识1.1 优先级队列优先队列PriorityQueue是Queue接口的实现,可以对其中元素进行排序Queue<Module> q = new PriorityQueue<>(compare);常用的方法:peek() // 返回队首元素poll() // 返回队首元素,且队首元素出列offer() // 向队列中添加元素size() // 返回队列元素的个数isEmpty() // 判断队列是否为空队列可以保存基原创 2021-09-08 14:25:46 · 273 阅读 · 0 评论 -
广度优先搜索 BFS
广度优先搜索 BFS类似于树的按层次遍历,可以利用队列实现。代码模板:初始化队列Q;Q = {起点s};标记s为已访问;while(Q非空){ 取Q队首元素u; u出队; if(u==目标状态) { …… } else { 所有与u相邻且未被访问的点进入队列; 标记u为已访问; }}实例:Leetcode102题目如下给你一个二叉树,请你返回其按 层序遍历 得到的节点原创 2021-08-29 13:26:32 · 77 阅读 · 0 评论 -
深度优先搜索DFS
深度优先搜索DFS一条道路走到底,直到走不下去为止。然后再返回上一节点,继续重复刚才的过程代码模板DFS:使用栈来保存已经走过的节点,节点按照深度优先的次序被访问并依次压入栈中,并已相反的次序出栈进行新的检测。DFS(dep,……)//dep代表目前DFS的深度{ if(找到解||走不下去了) { ……; return; } else { // 模拟下一种情况; DFS(dep+1,……原创 2021-08-26 21:46:31 · 117 阅读 · 0 评论