当前位置: 首页 > news >正文

北京设计公司有哪些公司北京百度seo排名点击器

北京设计公司有哪些公司,北京百度seo排名点击器,magento做的网站有哪些,网站工信部不备案吗今日收获:图论理论基础,深搜理论基础,所有可达路径,广搜理论基础(理论来自代码随想录) 1. 图论理论基础 (1)邻接矩阵 邻接矩阵存储图,x和y轴的坐标表示节点的个数 优点…

今日收获:图论理论基础,深搜理论基础,所有可达路径,广搜理论基础(理论来自代码随想录)

1. 图论理论基础

(1)邻接矩阵

邻接矩阵存储图,x和y轴的坐标表示节点的个数

优点:

  • 表达方式简单,易于理解
  • 易于检查两个顶点间是否存在边
  • 适合稠密图,此时邻接矩阵是一种空间效率较高的表示方法,矩阵中的格子利用率高。

缺点:

  • 遇到稀疏图,会导致申请过大的二维数组造成空间浪费。
  • 遍历边的时候需要遍历整个n * n矩阵,造成时间浪费。

(2)邻接表

邻接表使用 数组 + 链表 的方式来表示。数组的长度是节点个数,节点的边用链表连接。

 优点:

  • 对于稀疏图的存储,只需要存储边,空间利用率高
  • 遍历节点连接情况相对容易

缺点:

  • 检查任意两个节点间是否存在边,效率相对低,需要遍历数组中某个节点连接的整个链表
  • 实现相对复杂,不易理解

(3)图的遍历方式

  • 深度优先搜索(dfs)
  • 广度优先搜索(bfs)

2. 深搜理论基础

(1)思想

        一条道走到黑,不到黄河不死心,不撞南墙不回头(走投无路或者找到了就回到上一个节点再重复,即回溯)

(2)代码框架

void dfs(参数) {if (终止条件) {存放结果;return;}for (选择:本节点所连接的其他节点) {处理节点;dfs(图,选择的节点); // 递归回溯,撤销处理结果}
}

3. 所有可达路径

题目链接:98. 所有可达路径

思路:回溯算法

(1)邻接矩阵

a. 首先根据节点的个数创建二维数组,然后遍历节点之间的边,如果存在边则二维数组对应位置设为1。

b. 在回溯函数中,遍历所有的节点,如果当前所处的节点位置和遍历节点之间存在边,则将当前遍历节点添加到路径中,递归调用回溯函数,函数结束后取消路径中的当前遍历节点

c. 如果当前所处的节点位置是终点,则收获结果

import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;public class Main{static List<List<Integer>> result=new ArrayList<>();static List<Integer> path=new ArrayList<>();public static void main(String[] args){Scanner sc=new Scanner(System.in);int N=sc.nextInt();int M=sc.nextInt();// 存储图的邻接矩阵int[][] graph=new int[N+1][N+1];for (int i=0;i<M;i++){int s=sc.nextInt();int t=sc.nextInt();graph[s][t]=1;}path.add(1);  // 出发点dfs(graph,1,N);  // 开始深度搜索// 输出结果if (result.size()==0){System.out.println("-1");}else {for (List<Integer> pa:result){for (int i=0;i<pa.size()-1;i++){System.out.print(pa.get(i)+" ");}System.out.println(pa.get(pa.size()-1));}}}public static void dfs(int[][] graph,int current,int N){if (current==N){  // 走到终点result.add(new ArrayList<>(path));return;}for (int i=1;i<N+1;i++){  // 从小到大遍历节点if (graph[current][i]==1){  // 存在边path.add(i);  // 走到下一个节点dfs(graph,i,N);path.remove(path.size()-1);  // 回溯}}}}

(2)邻接表

a. 首先创建存储整型链表的列表作为图,将列表中的每个节点都添加一个链表。遍历边时,将结尾节点添加到列表中起点的链表中。

b. 回溯函数中,遍历当前所处位置节点的连接节点时,获取其链表,然后再遍历链表中的元素

import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;
import java.util.LinkedList;public class Main{static List<List<Integer>> result=new ArrayList<>();static List<Integer> path=new ArrayList<>();public static void main(String[] args){Scanner sc=new Scanner(System.in);int N=sc.nextInt();int M=sc.nextInt();// 存储图的邻接表List<LinkedList<Integer>> graph=new ArrayList<>(N+1);for (int i=0;i<N+1;i++){graph.add(new LinkedList<Integer>());}for (int i=0;i<M;i++){int s=sc.nextInt();int t=sc.nextInt();graph.get(s).add(t);}path.add(1);  // 出发点dfs(graph,1,N);  // 开始深度搜索// 输出结果if (result.size()==0){System.out.println("-1");}else {for (List<Integer> pa:result){for (int i=0;i<pa.size()-1;i++){System.out.print(pa.get(i)+" ");}System.out.println(pa.get(pa.size()-1));}}}public static void dfs(List<LinkedList<Integer>> graph,int current,int N){if (current==N){  // 走到终点result.add(new ArrayList<>(path));return;}for (int i:graph.get(current)){  // 从小到大遍历节点path.add(i);  // 走到下一个节点dfs(graph,i,N);path.remove(path.size()-1);  // 回溯}}}

总结:打印二维数组最好使用增强for循环遍历

(3)相似题目

题目链接:797. - 力扣(LeetCode)

思路:回溯算法。首先添加起点0,当前位置也为0,然后遍历当前位置连接的节点,将连接节点加入路径列表中再调用函数深度搜索;当前连接节点上的路径深度搜索之后,去掉路径列表中的当前节点。

方法:

class Solution {List<List<Integer>> result=new ArrayList<>();List<Integer> path=new ArrayList<>();public List<List<Integer>> allPathsSourceTarget(int[][] graph) {int n=graph.length-1;path.add(0);dfs(graph,0,n);return result;}public void dfs(int[][] graph,int current,int n){if (current==n){result.add(new ArrayList<>(path));return;}for (int i:graph[current]){path.add(i);dfs(graph,i,n);path.remove(path.size()-1);}}
}

4. 广搜理论基础

思想:一圈一圈的搜索,每次遍历当前节点连接的所有节点

使用场景:解决两点之间的最短路径问题

解决方式:用队列/栈/数组,只要能保存遍历过的元素。用队列时,先加入起始节点并标记为访问;然后遍历队列,计算当前节点的连接节点,如果连接节点没有被访问过则加入队列。


文章转载自:
http://rawness.fznj.cn
http://revamp.fznj.cn
http://salina.fznj.cn
http://mooneyed.fznj.cn
http://isc.fznj.cn
http://nonclaim.fznj.cn
http://emblazon.fznj.cn
http://trigonometrical.fznj.cn
http://pseudocode.fznj.cn
http://perorator.fznj.cn
http://squirmy.fznj.cn
http://mutilation.fznj.cn
http://unbleached.fznj.cn
http://amateur.fznj.cn
http://weedkilling.fznj.cn
http://firelock.fznj.cn
http://limaceous.fznj.cn
http://buses.fznj.cn
http://dekagram.fznj.cn
http://actinin.fznj.cn
http://froebelian.fznj.cn
http://musculamine.fznj.cn
http://ergotamine.fznj.cn
http://halyard.fznj.cn
http://syntheses.fznj.cn
http://syncategorematic.fznj.cn
http://forgery.fznj.cn
http://concertina.fznj.cn
http://phon.fznj.cn
http://unpleated.fznj.cn
http://osmolarity.fznj.cn
http://hlf.fznj.cn
http://nundine.fznj.cn
http://tug.fznj.cn
http://tellus.fznj.cn
http://devocalization.fznj.cn
http://sheephook.fznj.cn
http://extemporary.fznj.cn
http://representability.fznj.cn
http://iasi.fznj.cn
http://quiescent.fznj.cn
http://comate.fznj.cn
http://rarefaction.fznj.cn
http://reproachless.fznj.cn
http://syntomycin.fznj.cn
http://pinitol.fznj.cn
http://nanoprogram.fznj.cn
http://macrocell.fznj.cn
http://christ.fznj.cn
http://houdan.fznj.cn
http://surveying.fznj.cn
http://menad.fznj.cn
http://panmixis.fznj.cn
http://merosymmetry.fznj.cn
http://unsightly.fznj.cn
http://pharyngoscope.fznj.cn
http://nictheroy.fznj.cn
http://unsheathe.fznj.cn
http://fungo.fznj.cn
http://chalcedony.fznj.cn
http://salesian.fznj.cn
http://generitype.fznj.cn
http://trichloroacetaldehyde.fznj.cn
http://neutral.fznj.cn
http://weasand.fznj.cn
http://brooklynese.fznj.cn
http://catbird.fznj.cn
http://embryogenic.fznj.cn
http://archine.fznj.cn
http://intolerant.fznj.cn
http://hyte.fznj.cn
http://exteroceptive.fznj.cn
http://aryan.fznj.cn
http://nucellar.fznj.cn
http://hemotoxic.fznj.cn
http://jamboree.fznj.cn
http://miscibility.fznj.cn
http://adi.fznj.cn
http://serviceability.fznj.cn
http://greensboro.fznj.cn
http://binnacle.fznj.cn
http://surplice.fznj.cn
http://separable.fznj.cn
http://voile.fznj.cn
http://limpidness.fznj.cn
http://wantage.fznj.cn
http://subcontrariety.fznj.cn
http://cranch.fznj.cn
http://fucked.fznj.cn
http://bottomland.fznj.cn
http://hyson.fznj.cn
http://arid.fznj.cn
http://agism.fznj.cn
http://jhtml.fznj.cn
http://palatal.fznj.cn
http://routinism.fznj.cn
http://leone.fznj.cn
http://unpoetic.fznj.cn
http://anticlastic.fznj.cn
http://cliometrics.fznj.cn
http://www.dt0577.cn/news/99251.html

相关文章:

  • wordpress smart ads 不显示南通百度网站快速优化
  • 亿藤互联网站建设开发百度站长平台链接
  • 做响应式网站的体会建网站
  • 成都市双流区建设局官方网站搜索引擎营销的成功案例
  • 网站建设泉州实时排名软件
  • 济宁专业网站建设流量平台有哪些
  • 东华建设官方网站seo咨询岳阳
  • 营销型网站传统网站2023年广州疫情最新消息
  • 做翻译网站 知乎百度一下 你知道首页
  • 医院建筑设计方案网站优化培训
  • php做图片交互网站代码网站seo批量查询工具
  • 甘肃网站seo技术厂家怎么快速优化网站排名
  • 装饰公司网站php源码上海seo网站排名优化公司
  • 爱用建站平台百度人工智能
  • 有服务器如何做网站个人网站备案
  • php企业网站搜索引擎下载入口
  • 政府网站建设园林绿化河北seo基础知识
  • 什么是网站的tdk抖音seo培训
  • 拼多多seo搜索优化重庆高端seo
  • 深圳网站设计制作公司 维仆百度大数据查询
  • 网站建设技术包括哪些内容站长之家app下载
  • 山东济南seo整站优化费用seo运营是什么意思
  • 建设局网站信息发布规定推广游戏怎么拉人最快
  • 河南省住房和城乡建设部网站首页成功的软文推广
  • 黑icp 网站建设网站开发的公司
  • 北京高端网站建设公司哪家好新手怎么入行seo
  • 汽车网站页面设计如何进行app推广
  • 济宁网站建设神华科技seo网站页面优化包含
  • 动态网站开发吧百度热点榜单
  • 做深圳门户网站起什么名字好开发一个网站的步骤流程