ICode9

精准搜索请尝试: 精确搜索
  • 剑指 Offer 13. 机器人的运动范围2022-03-20 23:34:02

    剑指 Offer 13. 机器人的运动范围 题目 链接 https://leetcode-cn.com/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof/ 问题描述 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方

  • 旅游规划(Dijkstra)2022-03-20 10:35:27

    收获: 彻底弄懂最短路径问题 - 加拿大小哥哥 - 博客园 dijikstra处理单源最短路径问题 SPFA SPFA算法学习笔记 - 加拿大小哥哥 - 博客园 Bellman-Ford 数据结构(十一):最短路径(Bellman-Ford算法) - 简书 代码: #include <iostream> #include <cstring> using namespace std; #defin

  • DFS与BFS伪代码2022-03-20 09:59:22

    DFS(深度优先搜索)类似于树的先序遍历 void DFS(Vertex V){ visited[V] = true; for(V的每个邻接点W) if(!Visited[W]) DFS(W); } BFS(广度优先搜索)类似于树的层序遍历 void BFS(Vertex V){ visited[V]=true; Enqueue(V,Q); while(IsEmpty(Q)){ V = Dequeue(Q); f

  • P1460 [USACO2.1]健康的荷斯坦奶牛 Healthy Holsteins2022-03-19 16:00:14

    题目描述 农民 John 以拥有世界上最健康的奶牛为傲。他知道每种饲料中所包含的牛所需的最低的维他命量是多少。请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少。 给出牛所需的最低的维他命量,输出喂给牛需要哪些种类的饲料,且所需的饲料剂量最少。 维他命量

  • 深度优先遍历-200. 岛屿数量2022-03-02 22:58:14

    方法1 : 假设不能修改原始的数组,那么我们需要额外使用一个数组记录数据是否访问过,然后针对每一个为1的数据,通过深搜找到最大联通的岛屿,并将连接的岛屿置为访问过。 这样深搜的次数就是最终岛屿的数量。 代码如下: public int numIslands(char[][] grid) { int[][] vis

  • 数据结构:图的遍历2022-02-28 19:03:21

            邻接矩阵的遍历 //无向图的邻接矩阵存储 public class UndirectedMatrixGraph { private ArrayList vertexList;//存储顶点的集合 private int[][] edgeMatrix;//存储边的邻接矩阵 private int numOfVertex;//顶点的个数 private int numOfEd

  • 广搜的入门2022-02-26 10:34:49

    首先先来一题例题来解释做一个引子吧:                  比如:从3开始先选择一条路来走的话,从3到2然后继续往后走到1到0,在1就不能继续往后走了,就开始回溯了。从0到1,再到2,发现2还可以走到4然后再从4走到5,再返回4返回到3,再从3到6再到5。      这个地方有提到用栈来优化

  • PTA--球队“食物链”--《DS&A课程实践》第二次算法练习2022-02-23 11:32:49

    球队食物链 一、 题目二、题目分析三、源代码 一、 题目 二、题目分析 需要用图的数据结构,并且是有向图采用邻接表简单一些,邻接表可以自己实现,也可以用STL的map+vector实现,个人比较喜欢用vector数组实现,简单方便,但是题中的图可能出现重复的有向边,我们又不需要,并且最终我

  • [Algorithms]二叉树遍历方法与代码实现2022-02-22 11:34:54

    [Algorithms]二叉树、图遍历方法与代码实现 1. 二叉树遍历方法 首先,是本文使用二叉树结构的一个声明。 typedef struct BiTNode { char data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; 一、前序遍历 原理:若二叉树为空,则空操作返回,否则先访问根节点,然后前序遍历

  • 迷宫问题的DFS和BFS解法2022-02-21 10:03:55

    迷宫问题的DFS和BFS解法 ​ 写在前面:通过迷宫问题来熟悉dfs和bfs解法,加深对于这两种搜索方式的理解与运用 DFS算法 注:DFS可以求第一条路径,也可以求最短路径 算法过程 dfs(顶点V) { 标记顶点V以遍历; for(对于每一个邻接V且未被标记的顶点u); dfs(u); } Map = [[

  • 剑指offer 6~92022-02-10 22:32:05

    6.剑指 Offer 11. 旋转数组的最小数字 二分查找 class Solution { public int minArray(int[] numbers) { int l = 0, r = numbers.length - 1; while (l < r) { int mid = ((r - l) >> 1) + l; //只要右边比中间大,那右边一定是有序

  • DFS与BFS算法2022-02-06 09:06:10

    深度优先遍历简称DFS(Depth First Search),广度优先遍历简称BFS(Breadth First Search),它们是遍历图当中所有顶点的两种方式。下面分别介绍两种基本的搜索算法。 理论介绍 深度优先遍历DFS DFS属于图算法的一种,是针对图和树的遍历算法。深度优先搜索是图论中的经典算法,利用深度优

  • 1216. Valid Palindrome III2022-02-03 01:00:20

    This is the typical DP problem, the time complexity is O(n2), Where n is the length of string s. This is due to the fact that we try to find result for all combinations of l and r where l and r range from 0 to n: private int[][] visited; p

  • JZ13 机器人的运动范围2022-01-31 20:03:59

    JZ13 机器人的运动范围 描述 地上有一个 rows 行和 cols 列的方格。坐标从 [0,0] 到 [rows-1,cols-1] 。一个机器人从坐标 [0,0] 的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于 threshold 的格子。 例如,当 threshold 为 18

  • 【面试刷题】宽度优先搜索2022-01-31 14:00:29

    【面试刷题】宽度优先搜索 一、最简洁的BFS算法的通用模板 1、适用于树和图的BFS模板 队列建议使用new ArrayDeque不建议使用new LinkedList(链表比数组慢) //双端队列 Queue<Node> queue = new ArrayDeque<>(); HashMap<Node,Integer> distance = new HashMap<>(); //step 1 初

  • 回溯算法解题模板2022-01-31 11:03:36

    1,回溯算法解决字符串的排列其实就是排列组合,我们可以把它想象成为一棵n叉树(n是s的长度),然后每一个节点都要从字符串中选择一个字符,但注意不能选择重复的,比如在一个节点选择了a,那么他的子孙节点都不能再选择a了 作者:sdwwld链接:https://leetcode-cn.com/problems/zi-fu-chuan-de-pai-

  • 【POJ】2488 A Knight‘s Journey2022-01-29 22:32:04

    因为需要输出完整的访问路径,因此采用DFS比较好,注意因为题目要求按照字典序输出,因此direction数组只能有一种构造方式: #include <iostream> #include <cstdio> #include <string> #include <cstring> using namespace std; int direction[8][2] = { {-1, -2}, {1,

  • 最短路模板2022-01-29 16:33:01

    Dijkstra: #include<bits/stdc++.h> using namespace std; const int inf = 2147483647; priority_queue <pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > >q; int n,m,s,u,v,w; long long z[1000001],qz[1000001]

  • 课程表2问题2022-01-27 13:31:11

    class Solution { // 存储有向图 List<List<Integer>> edges; // 标记每个节点的状态:0=未搜索,1=搜索中,2=已完成 int[] visited; // 用数组来模拟栈,下标 n-1 为栈底,0 为栈顶 int[] result; // 判断有向图中是否有环 boolean valid = true;

  • 数据结构与算法:回溯法之全排列2022-01-25 18:30:18

    题源: 46.全排列 初次接触回溯法真的好难,debug了半天才了解到了其中的具体原理过程,接下来我引用weiwei哥的讲解和我自己的一些理解,希望可以为读者讲明白其中的原理。 什么是回溯法? 简单来说,就是分步地去解决问题,当发现某一步不符合我们的条件时就跳回到上一个步骤,再次尝试其

  • JZ12 矩阵中的路径2022-01-25 12:03:40

    JZ12 矩阵中的路径 描述 请设计一个函数,用来判断在一个n乘m的矩阵中是否存在一条包含某长度为 len 的字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子

  • JZ12 矩阵中的路径2022-01-25 12:03:27

    JZ12 矩阵中的路径 描述 请设计一个函数,用来判断在一个n乘m的矩阵中是否存在一条包含某长度为 len 的字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该

  • 【每日一题见微知著】Hash表+BFS—— 跳跃游戏 IV-Hard(今天这个难度对了)2022-01-21 19:03:19

    ⭐️寒假新坑——代码之狐的每日做题笔记 1345. 跳跃游戏 IV-Hard 题目描述: 给你一个整数数组 arr ,你一开始在数组的第一个元素处(下标为 0)。 每一步,你可以从下标 i 跳到下标: i + 1 满足:i + 1 < arr.lengthi - 1 满足:i - 1 >= 0j 满足:arr[i] == arr[j] 且 i != j 请你返回到达

  • python dfs和bfs2022-01-21 10:59:11

    def bfs(graph, start): visited = [] queue = [start] while queue: node = queue.pop(0) if node not in visited: visited.append(node) neighbours = graph[node] for neighbour in neighbours:

  • P1434 [SHOI2002]滑雪(DFS记忆化搜索)2022-01-16 23:03:21

    题目地址 https://www.luogu.com.cn/problem/P1434 思路 dfs。将每个步骤得到的最大路径记录下来给后来者直接使用节省时间,即记忆化搜索 代码 #include <iostream> using namespace std; int n, m;//行 列 int a[105][105]; int dx[] = { 0,0,1,-1 }; int dy[] = { 1,-1,0,0 }; in

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有