• 2024-11-13代码随想录算法训练营 | 所有可达路径
    所有可达路径文章链接:https://programmercarl.com/kamacoder/0098.所有可达路径.html#本题代码题目链接:https://kamacoder.com/problempage.php?pid=1170#include<iostream>#include<vector>usingnamespacestd;//全局路径vector<vector<int>>paths;vector<in
  • 2024-11-12计蒜客:圣诞树(dijkstra,特殊的生成树)
     基础原理:特殊的生成树给定一张无向图,其中边权都是正数,你需要求出总代价最小的生成树,生成树上每条边 (u,v)(u,v) 的代价为 w(u,v)∗count(v)w(u,v)∗count(v),其中 w(u,v)w(u,v) 为边 (u,v)(u,v) 的权值,count(v)count(v) 是 vv 所在子树的结点数总和。解法:虽然看起
  • 2024-11-10单词搜索
    单词搜索​给定一个mxn二维字符网格board和一个字符串单词word。如果word存在于网格中,返回true;否则,返回false。​单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重
  • 2024-11-08计蒜客:网络延迟(DFS/BFS)
     题目要求的是最远的两个节点的距离,即求树的直径(树中所有最短路径距离的最大值即为树的直径 求树的直径有两种做法,两次bfs(或者dfs),另一种是用树形DP本文用两次DFS实现#include<bits/stdc++.h>usingnamespacestd;intn,u,v;vector<int>graph[50005];vector<bool>vi
  • 2024-11-04计蒜客:最短路简化版(BFS)
     在queue中用结束标识来节约队列空间。也可以用vector来实现队列,用[left,right]控制队列。1#include<bits/stdc++.h>2usingnamespacestd;3intn,m,c;4vector<int>graph[1005];5vector<bool>visited(1005,false);6vector<int>level(1005,0);7queu
  • 2024-11-04计蒜客:互粉攻略(DFS/BFS)
     因为有重复数据,所以不得不等输入完以后再进行有向图的遍历。1#include<bits/stdc++.h>2usingnamespacestd;3intn,m;4set<int>graph[1005];5vector<bool>visited(1005,false);6vector<pair<int,int>>degree(1005,make_pair(0,0));//(入度,出度)
  • 2024-11-04IDEA中通义灵码的使用技巧
    大家好,我是V哥。在日常写代码的过程中,通过AI工具辅助开发已是当下程序员惯用的方式,V哥在使用了众多的AI工具后,多数情况下,选择通义灵码来辅助开发,尤其是解释代码和生成单元测试功能甚是好用,听V哥来详细聊聊。通义灵码安装打开你的IDEA开发工具,在菜单栏中选择Settings,
  • 2024-11-04IDEA中通义灵码的使用技巧
    大家好,我是V哥。在日常写代码的过程中,通过AI工具辅助开发已是当下程序员惯用的方式,V哥在使用了众多的AI工具后,多数情况下,选择通义灵码来辅助开发,尤其是解释代码和生成单元测试功能甚是好用,听V哥来详细聊聊。通义灵码安装打开你的IDEA开发工具,在菜单栏中选择Settings,打开
  • 2024-11-03BFS和DFS算法全面解析【算法入门】
    1.前言和树的遍历类似,图的遍历也是从图中某点出发,然后按照某种方法对图中所有顶点进行访问,且仅访问一次。但是图的遍历相对树而言要更为复杂。因为图中的任意顶点都可能与其他顶点相邻,所以在图的遍历中必须记录已被访问的顶点,避免重复访问。根据搜索路径的不同,我们可以将遍
  • 2024-10-29Offer68题 Day3 两个基础算法
    1.DFS深度优先算法/* -深度优先算法 DFS从起始节点出发,沿着一条路径尽可能深入地访问每个节点,直到无法继续时再回退,寻找未访问的节点。 -使用递归实现。*/#include<iostream>#include<vector>usingnamespacestd;voidDFS(intnode,vector<vector<int>>&gra
  • 2024-10-27【代码随想录Day52】图论Part04
    字符串接龙题目链接/文章讲解:代码随想录importjava.util.*;publicclassMain{//使用广度优先搜索(BFS)方法计算从beginWord到endWord的最短转换序列长度publicstaticintfindLadderLength(StringbeginWord,StringendWord,List<String>wordList){
  • 2024-10-23代码随想录算法训练营 | 岛屿数量 深搜,岛屿数量 广搜,岛屿的最大面积
    岛屿数量深搜题目链接:岛屿数量深搜文档讲解︰代码随想录(programmercarl.com)日期:2024-10-23想法:Java代码如下:importjava.util.Scanner;publicclassMain{publicstaticint[][]dir={{0,1},{1,0},{-1,0},{0,-1}};publicstaticvoiddfs(boolean[][]v
  • 2024-10-22【头歌实训:邻接表存储图的广度优先遍历】
    头歌实训:邻接表存储图的广度优先遍历文章目录任务描述相关知识邻接表存储图图的遍历广度优先遍历过程:算法设计思路:编程要求测试说明输入格式:输出格式:样例输入:样例输出:源代码:任务描述相关知识邻接表存储图图的遍历广度优先遍历过程:算法设计思路:
  • 2024-10-19图-C++基础
    图论是计算机科学和数学中非常重要的一个分支,涉及到图的性质、结构以及相关的算法。以下是对图论的基础知识、常用算法及其相关代码的整理,帮助你为CSP备考做好准备。一、图的基本概念1.1图的定义在数学中,图是一个由顶点(或节点)和边组成的集合。图可用以下形式表示:无向图:边
  • 2024-10-16代码随想录训练营第58天|统计相邻
    110.字符串接龙#include<iostream>#include<vector>#include<string>#include<unordered_set>#include<unordered_map>#include<queue>usingnamespacestd;intmain(){stringbeginStr,endStr,str;intn;ci
  • 2024-10-05[Python手撕]公交路线
    classSolution:defnumBusesToDestination(self,routes:List[List[int]],source:int,target:int)->int:ifsource==target:return0station_route={}foriinrange(len(routes)):
  • 2024-10-02[Python手撕]网格中的最短路径(可以有k次破墙的机会)
    classSolution:defshortestPath(self,grid:List[List[int]],k:int)->int:n=len(grid)m=len(grid[0])ifm==n==1:return0direction=[[0,1],[-1,0],[1,0],[0,-1]]visited=[[[
  • 2024-09-30leetcode133. 克隆图
    给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int)和其邻居的列表(list[Node])。classNode{publicintval;publicList<Node>neighbors;}测试用例格式:简单起见,每个节点的值都和它的索引相同。例如,第一个
  • 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