ICode9

精准搜索请尝试: 精确搜索
  • 最短路计数(松弛操作处理)2022-02-20 16:35:44

    题目链接 https://www.luogu.com.cn/problem/P1144 思路 我们用一个ans数组存储我们从源点到当前点的路径条数,那么我们发现如果我们能进行松弛操作,我们当前的最短路路径就可以从上一个点继承过来即 a n

  • 226. 翻转二叉树2022-02-19 01:32:05

    递归 先解决空 在规定子递归项目 最后是现在怎么操作现在 【二者可以交换】 最后返回传递给父递归 广度有限遍历 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0),

  • 整体二分模板(带修)2022-02-16 22:04:04

    P2617 #include<cstdio> #include<vector> #include<iostream> #include<algorithm> using namespace std; const int MAXN=1e5+5; int n,m,Ans[MAXN<<2],cg[MAXN<<2],tot,va[MAXN<<2],b[MAXN<<2],c1; struct SG{ int l,r,s

  • D. Big Brush 题解(构造+bfs)2022-02-15 14:35:19

    题目链接 题目大意 就是给你一个\(n*m\)的矩阵,你每次可以对一个\(2*2\)的方格染色变成\(k\),要求你最多染\(n*m\)次后,变成矩阵的样 子,每个点可以重复染色 题目思路 这个题目就是会覆盖导致问题不好解决 那么就考虑逆向染色那么就不会覆盖+bfs就可以解决此问题,具体看代码 代码 #incl

  • AcWing 850. Dijkstra求最短路 II(Dijkstra稠密图堆优化模板)2022-02-10 11:32:39

    题面链接 https://www.acwing.com/problem/content/description/852/ 思路 和朴素版的Dijkstra类似,只不过我们对边的存储进行堆优化,优先将短的边先更新(基于贪心策略) 代码 #include<bits/stdc++.h> using namespace std; //----------------自定义部分---------------- #defin

  • 算法-二叉树:二叉树的最大深度2022-02-07 16:30:19

    算法-二叉树:二叉树的最大深度 求一颗二叉树的最大深度,根节点的深度为1。 思路解析: 构造二叉树时,一般选择前序遍历;求普通二叉树的属性,一般选择后序遍历;求二叉搜索树的属性,一般选择中序遍历。 注意:对于普通二叉树单纯求深度使用前序遍历就行。 //方法一:递归 int height(TreeNod

  • 洛谷P14322022-02-02 11:35:39

    title: "bfs+模拟" author: Sun-Wind date: February 2,2022 水一道绿题,整体思路和八数码很像,哈希表存解,然后常规模拟即可 #include<iostream> #include<utility> #include<queue> #include<string> using namespace std; typedef long long ll; #define fi(i,a,b) f

  • leetcode 107 二叉树的层序遍历 II2022-02-01 22:32:16

    思路 原题链接 本题的思路与上一题 二叉树的层序遍历相似,实际就是将上一题的结果进行翻转即可注意:当开始调用checkfun函数的时候,首先要将队列定义出来,然后将node结点加入到队列que中que中直接加入node结点, tempNode中加入的事que.poll(),itemList是一个列表,在其中加入的是,temp

  • E1. Distance Tree (easy version) 题解(思维)2022-01-31 21:00:57

    题目链接 题目思路 这个题目的思路就是连\(1,j\)一个长度为\(x\)的边 其实就是有个中转点 \(dep[i]=min(dis[1][i],dis[i][j]+x)\) 那么如果\(x\leq dis[1][i]-dis[i][j]\;dep[i]=dis[i][j]+x\) 反之亦然 对于中转点利用双指针的思想写写 说的感觉好差,看代码可能可以看懂 代码 #in

  • 2022-01-27每日刷题打卡2022-01-27 16:03:01

    2022-01-27每日刷题打卡 飞书——每日一题 面试题 17.21. 直方图的水量 给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直方图,在这种情况下,可以接 6 个单位的水(蓝色部分

  • 蓝桥杯--完全二叉树的权值2022-01-26 23:35:34

    今天又学会了一个题,想和大家分享一下 题目见下: 给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从 上到下、从左到右的顺序依次是 A1, A2, ··· AN如下图所示: 现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点 权值之和最大?如果有多个深度的

  • 2022-01-26每日刷题打卡2022-01-26 17:32:10

    2022-01-26每日刷题打卡 飞书——每日一题 494. 目标和 给你一个整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 : 例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表

  • 2022-01-17每日刷题打卡2022-01-17 13:01:39

    2022-01-17每日刷题打卡 一本通 1255:迷宫问题 【题目描述】 定义一个二维数组: int maze[5][5] = { 0,1,0,0,0, 0,1,0,1,0, 0,0,0,0,0, 0,1,1,1,0, 0,0,0,1,0, };它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的

  • Queue<T>类2022-01-16 23:03:32

    class Program { static void Main(string[] args) { Queue<Person> que = new Queue<Person>(); que.Enqueue(new Person("11", 1)); //新增 que.Enqueue(new Person("22", 2)); q

  • [LeetCode 10] 正则表达式匹配2022-01-16 10:00:07

    给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/regular

  • 二叉树的层平均值python(leetcode637)2022-01-14 15:03:13

    # 637. 二叉树的层平均值 #也不是一层一层输出,每层只有一个平均值 # 求层平均值,需要记录下每层结点的数目 #另外除法需要注意取整的问题 # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val=0, left=None, right=None): #

  • 111.二叉树的最小深度2022-01-08 13:33:22

    111.二叉树的最小深度 解题思路 辅助队列 层数计数器dep 叶子节点的判断即为判断该节点是否有左右子树。 没有左右子树时说明为叶子节点,说明为最小深度,直接return 代码 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *le

  • LeetCode 111. 二叉树的最小深度2022-01-08 11:35:24

    层序遍历的应用: 移步->LeetCode 111. 二叉树的最小深度 移步->LeetCode 104. 二叉树的最大深度 移步->LeetCode 102. 二叉树的层序遍历 移步->LeetCode 226. 翻转二叉树 题目链接-LeetCode 111. 二叉树的最小深度 递归法思路: 注意这里有一个陷阱。 上图,左子树为空,最小深度不

  • 【Leetcode】NO.637 二叉树的层平均值 (C++&Python) [二叉树]2022-01-04 23:03:52

    题目:637.二叉树的层平均值(Easy) 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组 思路 这题是在求解过二叉树的层序遍历之后,在来解决这道题就比较容易; 注意返回值是double; 代码 C++ 版本 /** * Definition for a binary tree node. * struct TreeNode { * int v

  • 【Leetcode】NO.199 二叉树的右视图 (C++&Python) [二叉树]2022-01-04 22:32:15

    题目:199. 二叉树的右视图 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 思路 代码 C++ 版本 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNo

  • 二叉树层次遍历2022-01-02 10:33:34

    1 #include <iostream> 2 #include <vector> 3 #include <queue> 4 using namespace std; 5 6 void Print(const vector<int> &v) 7 { 8 for(auto it:v) 9 { 10 cout<<it<<" "; 11 } 12

  • JZ77 按之字形顺序打印二叉树2021-12-29 21:03:30

    描述 给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替) 数据范围:0 \le n \le 15000≤n≤1500,树上每个节点的val满足 |val| <= 100∣val∣<=100 要求:空间复杂度:O(n)O(n),时间复杂度:O(n)O(n) 例如: 给定的二叉树是{1,2,3,#,#,4,5} 该二叉

  • 二叉树的序列化和反序列化以及奇偶树2021-12-25 11:03:32

    /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Codec { // Encodes a tree to a single string. // 层序遍历 (遍

  • (二十六)二叉树的广度优先遍历(按层遍历)2021-12-24 20:59:40

    二叉树的广度优先遍历(按层遍历) (1)层序遍历,输出到一行;使用队列,先进先出 示例:【输出】1 2 3 4 5 6 7 void levelOrder(TreeNode* head){ queue<TreeNode*> que; if(head != NULL){ que.push(head); } while(!que.empty()){ TreeNode* cur = qu

  • 队列(数组模拟 + STL)2021-12-21 13:30:51

    一、模拟 const int N = 1e5 + 10; int hh = 1, tt = 0; int que[N]; //队尾插入x que[++tt] = x; //返回队尾元素 que[tt]; //返回队头元素 que[hh]; //弹出对头 hh++; //检查是否非空 hh > tt ? YES : NO; //队列长度 tt - hh; 二、STL #include<bits/stdc++.h> using

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

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

ICode9版权所有