ICode9

精准搜索请尝试: 精确搜索
  • 栈和队列2022-05-24 19:04:33

    栈和队列 栈 -stack 首先看看百度的解释: 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈

  • 图模型中,构建某一点到其余点距离之和最小的生成树2022-05-23 17:32:26

    AtCoder Beginner Contest 252 E - Road Reduction https://atcoder.jp/contests/abc252/editorial/4005 可以证明,总可以构建出一个生成树,使某一点到其余点的距离,等于原图中某一点到其余点的最小距离。 证明方法为,每次保留最小距离路径的最后一条边。 故可以使用dijkstra算法直接

  • 双端队列(搬运)2022-05-17 07:31:06

    /**************************** 顺序表 实现双端队列 ****************************/ #define DataType int #define maxn 100005 struct Queue { DataType data[maxn<<1]; int head, tail; }; void QueueClear(struct Queue* que) { que->h

  • 队列(搬运)2022-05-17 07:00:40

    /**************************** 链表 实现队列 ****************************/ typedef int DataType; struct QueueNode; struct QueueNode { DataType data; struct QueueNode *next; }; struct Queue { struct QueueNode *head, *t

  • 面试题 04.09. 二叉搜索树序列-----回溯法2022-05-16 23:33:11

    题目表述 从左向右遍历一个数组,通过不断将其中的元素插入树中可以逐步地生成一棵二叉搜索树。 给定一个由不同节点组成的二叉搜索树 root,输出所有可能生成此树的数组。 示例: 输入: root = [2,1,3] **输出: **[[2,1,3],[2,3,1]] **解释: **数组 [2,1,3]、[2,3,1] 均可以通过从左向

  • dls的数据结构_习题12022-04-27 13:34:23

    将(i, a[i])当作点,对a[i]这个维度扫描,在i这个维度上面建立扫描线 #include<bits/stdc++.h> using namespace std; const int N = 2e5+10; array<int, 4> que[N]; array<int, 2> a[N]; // 线段树维护树链剖剖分的dfs序 struct Node{ int l, r; int minn; }tr[4*N]; vo

  • LeetCode102二叉树的层序遍历-----广度优先搜索2022-04-23 23:32:13

    题目表述 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 广度优先搜索 首先让根节点入队列,然后遍历队列。 每次循环开始,计算出队列大小,当前的队列大小size就是每一层的节点数。循环这size个节点,依次弹出队列,然后判断当前节点的左右节

  • AcWing第24场周赛题解2022-04-20 12:32:29

    A. 4070. 异或 题目链接:https://www.acwing.com/problem/content/4073/ 题目大意:略。 解题思路:简单模拟。 示例程序: #include <bits/stdc++.h> using namespace std; int n, a[11], res; int main() { cin >> n; for (int i = 0; i < n; i++) cin >> a[i];

  • 二叉树层序遍历模版2022-04-20 09:34:16

    二叉树的层序遍历 该题为求最小深度 class Solution { public: int minDepth(TreeNode* root) { if (root == NULL) { return } int dep = 0; queue <TreeNode*> que; que.push(root); while (!que.empty()) {

  • AcWing第11场周赛题解2022-04-10 08:32:03

    A. 3795. 计算abc 题目链接:https://www.acwing.com/problem/content/3798/ 题目大意:已知三个正整数 \(a \le b \le c\),告诉你 \(a+b,a+c,b+c,a+b+c\),分别求 \(a,b,c\)。 解题思路:比较简单所以直接看代码吧。 示例程序: #include <bits/stdc++.h> using namespace std; int a[4]; i

  • 旅游2022-04-09 22:00:38

      题目描述 在一个大小为n∗mn∗m的方格地图mp[][]mp[][]上,初始时你在方格(1,1)(1,1)位置。有kk个旅游景点你想去玩。地图中标记为..的方格可以行走,标记为##的方格有障碍物不能经过,标记为数字的方格表示景点的编号。每秒钟你可以朝上,下,左或右移动一格位置,问最少花多少时间走遍k

  • AcWing第8场周赛题解2022-04-09 02:31:27

    A. 3770. 最小消耗 题目链接:https://www.acwing.com/problem/content/description/3773/ 题目大意:按照题目要求消灭两种类型怪兽(可以消耗 c 转换)的最小消耗。 解题思路:循环记录 0 和 1 出现的次数,消灭一个 0 的最小消耗为 min(a, b+c),消灭一个 1 的最小消耗为 min(a+c, b)。 示例

  • 广度优先搜索--迷宫2022-04-05 00:32:43

    核心:队列 1 #include<stdio.h> 2 struct note 3 { 4     int x; 5     int y; 6     int s; 7      8 }; 9 int main(){ 10     struct note que[2501]; 11     int a[51][51]={0},book[51][51]={0}; 12     int next[4][2]={{0,1},{1,0},{0,-1},{

  • 225. 用队列实现栈2022-03-25 11:31:51

    ✔做题思路 or 感想 : 用队列实现栈,仅仅用一个队列就可以了 push:直接push进队列就好 pop:把队首加到队尾,直到最开始的队尾变成了队首,这样就可以取最开始的队尾的值了。 peek:这个和pop的操作差不多,但是最后的操作有别。在最后取完队首(即是最开始的栈顶)后,要再把队首加到队尾

  • 300iq contest系列做题记录2022-03-25 01:01:25

    智商训练中 缓慢更新中.jpg J. Jealous Split 想不到的转化方式系列( 最优的划分方案一定是和的平方的和最小的子段划分方案 这东西直接$wqs$二分+斜率优化解决就行了 下面证明一下这个结论 考虑一个划分点$k$ 不妨设将$k$右移到$k_1$之后,平方和会变小 也就是说,对于左侧来说,它增加

  • DFS and BFS2022-03-20 17:04:27

    DFS and BFS 一. DFS的基本概念 深度优先搜索(Depth First Search,简称DFS):一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当搜索遇到阻碍,如节点 的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点 的那条边的起始节点

  • Leetcode 102. 二叉树的层序遍历2022-03-19 20:03:43

    102. 二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示例 2: 输入:root = [1] 输出:[[1]] 示例 3: 输入:root = [] 输出:[] 提示: 树中节点数目

  • java实现深度优先遍历——解决Leetcode.39组合总和问题2022-03-19 17:35:21

    深度优先遍历 对于深度优先遍历dfs,我们可以使用递归+回溯进行实现;预先定义一个栈或者队列都行,然后将每次满足的结果加入到集合当中,然后进行递归,再将集合尾部的元素删除进行回溯。 组合总和问题使用深度优先遍历实现代码如下: //定义方法用来实现深度优先遍历 public void

  • luoguP1434 [SHOI2002]:滑雪2022-03-01 17:02:54

    P1434 [SHOI2002]滑雪 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这道题可以用记忆搜索,也可以用dp,这里我就先讲一下dp的写法【本菜鸟学艺不精,只能写一些简单的dp】 首先,如果要想dp的话,先确定集合的含义; 这里定义集合的含义我一般喜欢从状态转移方程出手【这种方法我发现之

  • 542. 01 Matrix 广度优先算法 二维矩阵 python2022-03-01 09:06:04

    题目搬运者 https://leetcode-cn.com/problems/01-matrix/ 给定一个mxn的二进制矩阵,返回每个单元格最接近0的距离。 两个相邻单元格之间的距离为1。 思路 广度优先算法 从矩阵中是0的位置开始遍历周围一圈将上一步的坐标加入队列,继续遍历周围一圈,有点类似”泛洪“操作为了实

  • 二叉树的层序遍历【BFS】2022-02-27 23:01:49

    102. 二叉树的层序遍历 思路:简单BFS即可 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x),

  • 每日一练(27):二叉树的深度2022-02-26 09:34:48

    title: 每日一练(27):二叉树的深度 categories:[剑指offer] tags:[每日一练] date: 2022/02/26 每日一练(27):二叉树的深度 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如: 给定二叉树 [3,9,2

  • 每日一练(27):二叉树的深度2022-02-26 09:32:14

    title: 每日一练(27):二叉树的深度 categories:[剑指offer] tags:[每日一练] date: 2022/02/26 每日一练(27):二叉树的深度 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如: 给定二叉树 [3,9,20,nul

  • 力扣:515.在每个树行中找最大值2022-02-24 15:34:41

    力扣:515.在每个树行中找最大值 代码随想录 题目: 给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。 思路: 正常按层序遍历,for中内容,是从第一层一直到最后一层,首相将第一个元素值赋给标志量,然后后面这一行要删除的元素的值都与这个标志量进行比较,后面的值大则交换

  • 剑指offer 32 - Ⅲ 从上到下打印二叉树Ⅲ2022-02-23 18:58:58

    题目地址 解题思路 本题和从上到下打印二叉树Ⅱ基本没差别,就是多了一个间接反转。利用好计数器和mod运算即可。 代码实现(C++) /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeN

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

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

ICode9版权所有