​ 因为自己的原因,之前没有坚持做算法的相应学习,总是觉得太难就半途而废,真的算是一个遗憾了,所以现在开始,定一个30天入门学习算法计划。

​ 我是根据《算法图解》的顺序进行安排的,自己对散列表和递归调用栈还算有点初步的了解,所以从图算法开始了,希望markdown能一直写下去,自己学习算法能一直坚持下去。

​ BFS给我的感觉是用于图的搜索算法。

​ 看书的时候自己有这么几个疑问:

Q1:它是一个搜索算法,那么它计数是在哪记的?

Q2:C++的队列怎么快速创建?有哪些api?(因为只在数据结构对队列有所了解,感觉应该不可能手写结构体和函数吧0.0)

(hhhh萌新问题嘛)

这里有篇随笔感觉对我这种入门辣鸡的萌新很友好https://blog.csdn.net/jiange702/article/details/81365005

#include<iostream>
using namespace std;
#include<string>
#include<stdio.h>
#include<queue> //这里就解决了我的Q2问题,是直接用头文件引入就好啦 /*
*BFS算法的模板就大概是
1.创建队列
2.push头节点
3.循环
{
1.以队列不为空为条件
2.pop出头节点
3.根据题目条件进行判
4.push进头节点的子节点
}
*/
void BFS()
{
memset(visited, 0, sizeof(int));
queue<co> q;
co A;
A.x = 0;
A.y = 0;
visited[0][0] = 1;
zhen[0][0].x = 0;
zhen[0][0].y = 0; q.push(A);
while(!q.empty())
{
co te = q.front();
q.pop(); //弹出队列 if(te.x==4 && te.y== 4)
{
return;
}
for(int i = 0; i < 4; i++)
{
int tx = te.x + xx[i];
int ty = te.y + yy[i];
if(tx<0 || ty<0 || tx>4 || ty>4 || visited[tx][ty]==1)
continue;
visited[tx][ty] = 1;
co child;
child.x = tx;
child.y = ty;
q.push(kao);
zhen[tx][ty].x = te.x;
zhen[tx][ty].y = te.y;//这里是记录子节点的来源坐标,是由于这个“迷宫”题目要求的坐标,但这里也可以改成zhen[tx][ty] = zhen[te.x][te.y] + 1;这里就解决了我Q1问题,可以记录最短路径数
}
}
}

今天的训练是LeetCode102 二叉树的层次遍历

代码如下:

class Solution {
public:
bool isSymmetric(TreeNode* root) {
queue<TreeNode*> q,p;
q.push(root);
p.push(root);
while(!q.empty() || !p.empty())
{
TreeNode* t1 = q.front();
q.pop();
TreeNode* t2 = p.front();
p.pop();
if(t1 == NULL && t2 == NULL) continue;
if(t1 == NULL || t2 == NULL) return false;
if(t1->val != t2->val) return false;
q.push(t1->left);
q.push(t1->right);
p.push(t2->right);
p.push(t2->left);
}
return true;
}
};

Day1 BFS算法的学习和训练的更多相关文章

  1. 【2018.07.30】(广度优先搜索算法/队列)学习BFS算法小记

    一些BFS参考的博客: https://blog.csdn.net/ldx19980108/article/details/78641127 https://blog.csdn.net/u011437 ...

  2. AI佳作解读系列(一)——深度学习模型训练痛点及解决方法

    1 模型训练基本步骤 进入了AI领域,学习了手写字识别等几个demo后,就会发现深度学习模型训练是十分关键和有挑战性的.选定了网络结构后,深度学习训练过程基本大同小异,一般分为如下几个步骤 定义算法公 ...

  3. BFS算法的优化 双向宽度优先搜索

    双向宽度优先搜索 (Bidirectional BFS) 算法适用于如下的场景: 无向图 所有边的长度都为 1 或者长度都一样 同时给出了起点和终点 以上 3 个条件都满足的时候,可以使用双向宽度优先 ...

  4. [源码解析] 深度学习分布式训练框架 Horovod (1) --- 基础知识

    [源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 目录 [源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 0x00 摘要 0x01 分布式并 ...

  5. [源码解析] 深度学习分布式训练框架 horovod (2) --- 从使用者角度切入

    [源码解析] 深度学习分布式训练框架 horovod (2) --- 从使用者角度切入 目录 [源码解析] 深度学习分布式训练框架 horovod (2) --- 从使用者角度切入 0x00 摘要 0 ...

  6. [源码解析] 深度学习分布式训练框架 horovod (5) --- 融合框架

    [源码解析] 深度学习分布式训练框架 horovod (5) --- 融合框架 目录 [源码解析] 深度学习分布式训练框架 horovod (5) --- 融合框架 0x00 摘要 0x01 架构图 ...

  7. [源码解析] 深度学习分布式训练框架 horovod (8) --- on spark

    [源码解析] 深度学习分布式训练框架 horovod (8) --- on spark 目录 [源码解析] 深度学习分布式训练框架 horovod (8) --- on spark 0x00 摘要 0 ...

  8. [源码解析] 深度学习分布式训练框架 horovod (12) --- 弹性训练总体架构

    [源码解析] 深度学习分布式训练框架 horovod (12) --- 弹性训练总体架构 目录 [源码解析] 深度学习分布式训练框架 horovod (12) --- 弹性训练总体架构 0x00 摘要 ...

  9. [源码解析] 深度学习分布式训练框架 horovod (16) --- 弹性训练之Worker生命周期

    [源码解析] 深度学习分布式训练框架 horovod (16) --- 弹性训练之Worker生命周期 目录 [源码解析] 深度学习分布式训练框架 horovod (16) --- 弹性训练之Work ...

随机推荐

  1. 【01】sass基础信息:

    [01]基础信息:   2016年4月16日   最新版本:3.4.22   官网:http://sass-lang.com/(下图)       CSStoSCSS 网站:http://css2sa ...

  2. HaHa's Morning(状压DP)

    描述 HaHa is so happy today, he is going to participate the 7th Hunan University Programming Contest. ...

  3. BestCoder Round #90 A+B题解!

    BestCoder Round #90 A  Kblack loves flag 题意有点迷不造思路很简单但不造怎么求随机数,纠结了一会后直接粘上题目所给的代码稍加修改A了. const int _K ...

  4. hust训练赛20160330--B - 又见LKity

    Problem 2122 又见LKity Time Limit: 1000 mSec Memory Limit : 32768 KB  Problem Description 嗨!大家好,在Templ ...

  5. [NOIP1998] 提高组 洛谷P1011 车站

    题目描述 火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上.下车,但上.下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人.从第3站起( ...

  6. C++内存分配方式——(别人的博客)

    http://www.cnblogs.com/easonpan/archive/2012/04/26/2471153.html http://blog.csdn.net/chen825919148/a ...

  7. vagrant的学习 之 ThinkPHP3.2

    vagrant的学习 之 ThinkPHP3.2 (1)在web目录下新建tp32目录: cd /home/www/ mkdir tp32 (2)下载框架 我从ThinkPHP官网下载了ThinkPH ...

  8. app后端搜索入门

    现在人们的网络生活已经离不开搜索了,遇到不懂的问题,想知道的事情,搜索一下,就知道答案. 在app中,最常见的搜索情景就是搜索用户.只有几百,几千的用户量时,可以直接用用like这样的模糊查询,但是, ...

  9. 动态规划:Monkey and Banana

    Problem Description A group of researchers are designing an experiment to test the IQ of a monkey. T ...

  10. [Bzoj1499][NOI2005]瑰丽华尔兹[简单DP]

    1499: [NOI2005]瑰丽华尔兹 Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 1714  Solved: 1042[Submit][Status ...