• 2024-09-13dfs深度优先搜索
    面试题04.01.节点间通路-力扣(LeetCode)classSolution{public:booldfs(unordered_map<int,vector<int>>&adjList,vector<bool>&visited,intcurrent,inttarget){if(current==target){returntrue;}
  • 2024-09-12SQL.LeetCode(1321)餐馆营业额变化增长
    表: Customer+---------------+---------+|ColumnName|Type|+---------------+---------+|customer_id|int||name|varchar||visited_on|date||amount|int|+---------------+---------+在SQL中,(customer
  • 2024-09-09【408DS算法题】039进阶-判断图中路径是否存在
    Index题目分析实现总结题目对于给定的图G,设计函数实现判断G中是否含有从start结点到stop结点的路径。分析实现对于图的路径的存在性判断,有两种做法:(本文的实现均基于邻接矩阵存储方式的图)1.图的BFSBFS的思路相对比较直观——从起始结点出发进行层次遍历,遍历过程
  • 2024-09-09算法模版
    1、二分查找intleft=0,right=array.length-1;while(left<=right){intmiddle=(left+right)/2;if(array[middle]==target){//findtheresultreturnmiddle;}elseif(array[middle]<target){left=
  • 2024-09-08【408DS算法题】038进阶-图深度优先遍历DFS
    Index题目分析实现总结题目设计函数实现对图的深度优先遍历。分析实现类似于图的BFS的分析思路,图的DFS和二叉树的DFS思路相同,但需要额外考虑结点是否已经被访问过。此处同样用布尔数组visited来记录每个结点的访问情况,对于邻接矩阵存储方式的图的DFS,依照先序遍
  • 2024-09-08图论篇--代码随想录算法训练营第五十三天打卡| 110. 字符串接龙,105.有向图的完全可达性,106. 岛屿的周长
    110.字符串接龙题目链接:110.字符串接龙题目描述:字典strList中从字符串beginStr和endStr的转换序列是一个按下述规格形成的序列: 序列中第一个字符串是beginStr。序列中最后一个字符串是endStr。 每次转换只能改变一个字符。 转换过程中的中间字符串必须是字典
  • 2024-09-07代码随想录day 53 || 图论4
    字符串接龙varqueue*list.ListvarvisitMapmap[string]boolfuncmain(){ varcountint fmt.Scanf("%d",&count) varstartStr,endStrstring fmt.Scanf("%s%s",&startStr,&endStr) varstrList=make([]string,count) fo
  • 2024-09-06第十二章 图论 Part3
    目录任务Kama101.孤岛的总面积思路Kama102.沉没孤岛思路Kama103.水流问题思路Kama104.建造最大岛屿思路心得任务Kama101.孤岛的总面积给定一个由1(陆地)和0(水)组成的矩阵,岛屿指的是由水平或垂直方向上相邻的陆地单元格组成的区域,且完全被水域单元格包围。孤岛是那些位于矩
  • 2024-09-06代码随想录day52 || 图论3
    岛屿最大的孤岛面积packagemainimport"fmt"vardirPath=[4][2]int{{0,-1},{1,0},{0,1},{-1,0}}varvisited[][]boolvarflagboolvarresintfuncmain(){ varx,yint fmt.Scanf("%d%d",&x,&y) //x行y列初始化临界矩阵 vargra
  • 2024-09-05第十一章 图论 Part2
    目录任务200.岛屿数量思路695.岛屿的最大面积思路任务200.岛屿数量给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。思
  • 2024-09-05代码随想录day52 || 图论搜索 岛屿数量,岛屿的最大面积
    图遍历dfs深度优先搜索bfs广度优先搜索200岛屿数量(dfs)vardirPath=[][]int{{0,-1},{1,0},{0,1},{-1,0}}//上,右,下,左varvisited[][]boolfuncnumIslands(grid[][]byte)int{ //dfs深度优先遍历,对于每一个节点,按照上下左右四个固定顺序遍历,然后到下
  • 2024-09-03代码随想录day16--图论
    题目描述:给定一个由1(陆地)和0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可以假设矩阵外均被水包围。输入描述:第一行包含两个整数N,M,表示矩阵的行数和列数。后续N行,每行包含M个数字,数字为1或者0。输出描
  • 2024-08-30深度优先搜索模板
    深度优先搜索(DFS)是一种用于遍历或搜索图或树的算法。以下是深度优先搜索的模板:visited=set()defdfs(node):#如果节点已经访问过,则直接返回ifnodeinvisited:return#标记节点为已访问visited.add(node)#对当前节点的所
  • 2024-08-29数据结构之广度优先搜索
    一、基本思想BFS的基本思想是使用队列(Queue)数据结构来实现。队列是一种先进先出(FIFO)的数据结构,这符合BFS逐层访问节点的需求。在BFS中,首先将起始节点加入队列,并标记为已访问。然后,从队列中取出一个节点,访问其所有未被访问的相邻节点,并将这些相邻节点加入队列。重复这个过程
  • 2024-08-19day2打卡
    209.长度最小的数组使用滑动窗口,这个方法我是没有想到的classSolution{public:intminSubArrayLen(inttarget,vector&nums){inti=0;intmin=nums.size()+1;intj=0;intsum=0;for(;j<nums.size();++j){sum+=nums[j];while(sum>=target){if(min
  • 2024-08-17深度搜索迷宫问题
    深度搜索(Depth-FirstSearch,DFS)是一种用于图的遍历的算法,也可以用来解决迷宫问题。迷宫问题是指在一个迷宫中,找到从起点到终点的路径。以下是深度搜索解决迷宫问题的步骤:创建一个二维数组来表示迷宫,其中0表示可以通过的路径,1表示墙壁或障碍物。同时创建一个与迷宫相同大小的
  • 2024-08-15广度优先算法 BFS总结(算法详解+模板+例题)
    一.bfs是什么广度优先搜索(Breadth-FirstSearch,简称BFS),是一种图遍历算法。它从给定的起始节点开始,逐层地向外扩展,先访问起始节点的相邻节点,然后再访问相邻节点的相邻节点,以此类推,直到遍历完所有可达节点。二.基本思路1.一直往前走,直到到达终点。2.遇到分岔路口直接分出几条
  • 2024-08-08文心一言 VS 讯飞星火 VS chatgpt (319)-- 算法导论22.3 11题
    十一、请解释有向图的一个结点u怎样才能成为深度优先树中的唯一结点,即使结点u同时有入边和出边。如果要写代码,请用go语言。文心一言:在一个有向图中,如果结点u在深度优先搜索(DFS)的过程中成为深度优先树(DFS树)中的唯一结点,这通常意呀着在DFS遍历的某个特定时刻,从u出发能够探索
  • 2024-08-03Dijkstra
    DijkstraDijkstra算法的步骤中没有考虑负权重的边。如果图中存在负权重的边,应该使用其他算法,如[[笔记/笔记杂记/Bellman-Ford]]算法算法步骤初始化:创建一个距离数组 distance,用于记录从源节点到每个节点的距离,初始时将所有节点的距离设置为无穷大(表示不可达),将源节点的距
  • 2024-08-03Prim
    PrimPrim算法是一种用于解决最小生成树(MinimumSpanningTree)问题的贪心算法。它通过不断选择与当前生成树连接的最小权重边来逐步构建最小生成树。具体流程如下:创建一个空的最小生成树MST和一个空的集合visited,用于存放已经被访问过的顶点。选择一个起始顶点,将其加入vi
  • 2024-08-03【代码随想录】图论复习(Python版)
    深度优先搜索1.搜索过程一个方向搜,不到黄河不回头,直到遇到绝境了,搜不下去了,再换方向(换方向的过程就涉及到了回溯)2.代码框架回溯法的代码框架:defbacktracking(参数):if终止条件:存放结果returnfor选择本层集合中的元素(树中节点孩子的数量
  • 2024-08-03【算法】浅析深度优先搜索算法
    深度优先搜索算法:深入探索,穷尽可能1.引言在计算机科学中,深度优先搜索(Depth-FirstSearch,简称DFS)是一种用于遍历或搜索树或图的算法。这种算法会沿着一个分支走到底,直到这个分支结束,然后回溯到上一个分叉点,继续探索下一个分支。本文将介绍深度优先搜索算法的原理、实现方
  • 2024-08-02文心一言 VS 讯飞星火 VS chatgpt (316)-- 算法导论22.3 8题
    八、请给出如下猜想的一个反例:如果有向图G包含一条从结点u到结点v的路径,并且在对图G进行深度优先搜索时有u.d<v.d,则结点v是结点u在深度优先森林中的一个后代。如果要写代码,请用go语言。文心一言:为了提供一个反例,我们需要考虑深度优先搜索(DFS)的特性,并构造一个图,其中存在从
  • 2024-08-01图的遍历及其C语言实现
    目录1.为什么需要两种遍历方法?2.深度优先搜索(DeepthFirstSearch,DFS)思想:具体过程:伪代码:时间复杂度:3.广度优先搜索(BreadthFirstSearch,BFS) 思想:具体过程: 伪代码: 时间复杂度:图示: ​编辑 C语言代码演示1.为什么需要两种遍历方法?解决不同问题:DFS适用
  • 2024-08-01代码随想录算法训练营第56天 | 广搜和深搜应用
    110.字符串接龙https://kamacoder.com/problempage.php?pid=1183代码随想录https://www.programmercarl.com/kamacoder/0110.字符串接龙.html#思路105.有向图的完全可达性https://kamacoder.com/problempage.php?pid=1177代码随想录https://www.programmercarl.com/kamaco