ICode9

精准搜索请尝试: 精确搜索
  • 102.二叉树的层序遍历2021-12-20 11:00:54

    层序遍历 class Solution { List<List<Integer>> result = new ArrayList<>(); public List<List<Integer>> levelOrder(TreeNode root) { checkFun(root); return result; } public void checkFun(TreeNode node

  • 【C++笔记】关于push_back(vector<int>());2021-12-05 10:59:38

    vector<vector<int>> vec; vec.push_back(vector<int>()); vec.back().push_back(); 今天在刷leetcode题的时候见到如上三句代码,很有意思。 第一句创建了一个实体为vertor<int>的容器,可以理解为一个二维数组; 第二句话相当于分隔符了,往二维数组里插入空的vector<int>(),可以理解为

  • 515. 在每个树行中找最大值2021-11-28 11:33:38

    515. 在每个树行中找最大值 题目链接: 515. 在每个树行中找最大值(中等) 题目描述 给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。 示例1: 输入: root = [1,3,2,5,3,null,9]输出: [1,3,9]解释:         1         / \       3   2       / \   \

  • 116. 填充每个节点的下一个右侧节点指针2021-11-28 11:32:31

    116. 填充每个节点的下一个右侧节点指针 题目链接: 116. 填充每个节点的下一个右侧节点指针(中等) 题目描述 给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next;} 填充它的

  • 104. 二叉树的最大深度2021-11-28 11:31:26

    104. 二叉树的最大深度 题目链接:104. 二叉树的最大深度(简单) 题目描述 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7],   3   / \ 9 20   /

  • 429. N 叉树的层序遍历2021-11-27 16:03:14

    429. N 叉树的层序遍历 题目链接:429. N 叉树的层序遍历 题目描述 给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。 树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。 示例 1: 输入:root = [1,null,3,2,4,null,5,6]输出:[[1],[3,2,4],[5,6]] 示例 2:

  • 637. 二叉树的层平均值2021-11-27 08:32:27

    637. 二叉树的层平均值 题目链接:637. 二叉树的层平均值(简单) 题目描述 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。 示例 1: 输入:   3   / \ 9 20   / \   15   7输出:[3, 14.5, 11]解释:第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3,

  • 107. 二叉树的层序遍历 II2021-11-26 16:03:47

    107. 二叉树的层序遍历 II 题目链接:107. 二叉树的层序遍历 II(中等) 题目描述 给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7],   3   / \ 9 20   / \   15   7 返回

  • 102. Binary Tree Level Order Traversal2021-11-24 23:59:07

     层次遍历,广度优先,用队列实现 // 102.二叉树的层序遍历 class Solution { public List<List<Integer>> resList = new ArrayList<List<Integer>>(); public List<List<Integer>> levelOrder(TreeNode root) { //checkFun01(root,0);

  • Leetcode 1971. Find if Path Exists in Graph [Python]2021-11-23 23:59:26

    BFS 从start遍历到end,每一次que弹出节点是end,返回true,否则,把此节点加入到seen set中,并入队。遍历完成后,未找到end节点,代表和start直接或间接相连的节点中没有end节点。返回false。注意特殊情况,只有一个节点时。 class Solution: def validPath(self, n: int, edges: List

  • P1073 [NOIP2009 提高组] 最优贸易 题解 分层图最短路2021-11-17 15:02:34

    题目链接:https://www.luogu.com.cn/problem/P1073 解题思路: 将每个点 \(u\),拆成三层: 第 \(0\) 层:\((u, 0)\); 第 \(1\) 层:\((u, 1)\); 第 \(2\) 层:\((u, 2)\)。 各层之间依次建图。 然后对于任意点 \(u\),设点 \(u\) 的权值为 \(a_u\),则: 从 \((u,0)\) 连 \((u,1)\) 一条权值为 \(a

  • 洛谷P5340 大中锋的游乐场 题解 分层图最短路2021-11-16 19:34:27

    题目链接:https://www.luogu.com.cn/problem/P5340 解题思路: 拆点/分层图最短路。 每个点 \(u\) 及到达点 \(u\) 是所吃汉堡与所喝可乐数量之差 \(p\) 对应一个二元组 \((u,p)\)。对二元组求最短路。 示例程序: #include <bits/stdc++.h> using namespace std; const int maxn = 101

  • leetcode 127 单词接龙2021-11-16 10:01:53

    采用了算是BFS的方法,维护一个队列,其中维护某一次循环中所有需要进行处理的字符串。每当一次循环开始时,首先记录当前队列中元素个数,作为大循环中小循环个数。每一个小循环中,都会对队列中的元素寻找数组中是否有只差一位的字符串,如果有,则将该字符串从数组中删除,并且加入队列。每次大

  • 多校冲刺 NOIP 20211111 模拟 (28)2021-11-13 07:00:30

    多校冲刺 NOIP 20211111 模拟 (28) 冲了3个正解,结果一个挂了,哭了。。。。。 T1 嗑瓜子 水笔期望dp,不多阐述 T2 第 k 大查询 由于k<=50所以考虑找到这个数字前面第k个比它大的,和后面的数字进行区间匹配, 顺序删点保证里面的数字都是比当前数字大的,然后链表维护就行了 #include<bits/

  • 数据结构之普通队列C语言版(简单易懂)2021-11-08 23:04:40

    数据结构之普通队列C语言版 文章目录 数据结构之普通队列C语言版什么是普通队列简单使用C语言实现普通队列前期准备结构体封装初始化队列判断队列是否为空判断队列是否满队获取队列当前元素个数获取队头出队函数测试函数 什么是普通队列 队列是一种数据结构,是用来存储

  • 力扣102题(二叉树的层序遍历)2021-11-06 22:32:29

    102、二叉树的层序遍历 基本思想: 从上到下、从左到右依次依次将每个数放入到队列中,然后按顺序依次打印就是想要的结果 具体实现: 1.先将二叉树的根节点放到队列que中 2.第一层循环中   定义列表itemList放二叉树每一层的结果 3.第二程循环中   len控制每一层,减到0的话说明二叉

  • noip2021训练2(USACO)2021-11-06 19:34:39

    Link [USACO10MAR] Great Cow Gathering G 换根 dp 板子 先用树形 dp 求出以 \(1\) 为根的最小不方便值,然后 bfs 向儿子换根 \(f_v=f_u + (siz_u - siz_v \times 2) \times w\) 这个手推一下就好了,大概就是把两边子树中的点经过 \((u,v)\) 这条边的代价算一下。 Code #include <b

  • NOIP 模拟 $89\; \rm 混凝土粉末$2021-11-05 07:00:47

    题解 \(by\;zj\varphi\) 将询问离线,用扫描线扫下标,然后在操作序列上建立权值树状数组。 对于一个修改,将它转换为在 \(l\) 加上 \(h\),在 \(r+1\) 加上 \(-h\),对于询问,直接在树状数组上二分出哪个最早的查询使得加和高度比询问高度大。 因为博主不会树状数组二分,所以改成了二分树状

  • 11月做题记录2021-11-01 23:03:07

    不知道为什么就开了这个坑。 争取在 NOIP 之前每日更新( 11.1 *1442C 考虑分层图。在第 \(19\) 层的时候换方向的代价已经超过了走一遍图的代价,所以如果能在 \(19\) 层之前到达 \(n\) 的话一定不会再往下走。如果翻转 \(19\) 次还无法到达 \(n\),就需要走的层尽量少,最短路时将换层代

  • 结构体优先队列的定义2021-10-30 09:38:04

    前言 蒟蒻在定义优先队列时,经常忘记重载运算符之后优先队列该定义大根堆还是小根堆。 每次都得试一下 \(QwQ\)。 所以写一篇博客来记录一下,以后就不用试了。 正文 普通的优先队列有两种定义方法。 大根堆(默认): priority_queue <int> q; 小根堆: priority_queue <int, vector<in

  • 腐烂的橘子2021-10-27 10:31:22

    题目链接:https://leetcode-cn.com/problems/rotting-oranges 题目描述: 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。 返回直到单元格中没有新

  • [USACO15JAN]Grass Cownoisseur G2021-10-22 22:04:20

    link 拿到本题,先强连通缩个点~ 得到一个DAG,考虑这个只能逆行一次简直就是分形图的板子嘛。逆行就是第一层向第二层连边即可,这样就保证了只会跑一次。 然后因为这个分形图是个 DAG,所以可以上拓扑排序或者 spfa,,在这里spfa的复杂度=拓扑排序的复杂度。 还有一个值得深思的问题,我们可

  • NOIP 模拟 $80\; \rm 光线追踪$2021-10-20 08:33:39

    题解 \(by\;zj\varphi\) 一个矩形,它的贡献只能在它的左边界或它的下边界,意思就是,一条射线和它的第一个交点一定在它的左边界或它的下边界 而一个矩形能截到的直线的斜率在 \([\frac{y}{x_1},\frac{y_1}{x}]\) ,所以对于左边界的斜率范围,和下边界的斜率范围,分别建一棵线段树。 有小

  • bfs的练习2021-10-15 02:31:06

    bfs搜索算法即广度搜索 思路:遍历的过程利用队列存放每一层的元素信息,依次遍历每个元素,返回最短的路径   1 #include <iostream> 2 #include <queue> 3 #include <cstdio> 4 #include <cstring> 5 6 using namespace std; 7 8 //数据结构 9 //存放二维数组的x,y,step

  • C++学习 --- STL常用容器之queue容器2021-10-11 11:03:04

    5、queue 容器 5.1、queue基本概念 概念:Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口。   5.2、queue常用接口 构造函数: queue<T> que; //queue采用模板类实现,queue对象的默认构造形式 queue(const queue &que); //拷贝构造函数 赋值操作 queue &

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

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

ICode9版权所有