0

二叉树面试题:前中序求后序、中后序求前序

在面试时,避免不了的会遇到一些数据结构的面试题,今天我们就来了解一下二叉树的经典面试题: ...

万猫学社 发布于 2020-02-13 12:27 评论(0)阅读(105)
5

五大常见算法策略之——动态规划策略(Dynamic Programming)

Dynamic Programming Dynamic Programming是五大常用算法策略之一,简称DP,译作中文是“动态规划”,可就是这个听起来高大上的翻译坑苦了无数人,因为看完这个算法你可能会觉得和动态规划根本没太大关系,它对“动态”和“规划”都没有太深的体现。 举个最简单的例子去先浅显的 ...

头发是我最后的倔强 发布于 2020-02-13 10:42 评论(1)阅读(292)
0

什么是队列?

与前面提到的 "数据结构" 相同,队列中的数据也呈 线性排列 。虽然与 "栈" 有些相似,但队列中添加和删除数据的操作分别是在 两端 进行的,就和队列这个名字一样,把它想象成排成一队的人更容易理解。在队列中,处理总是从第一名开始往后进行,而新来的人只能排在队尾。 队列是什么? 如上就是队列的概念图, ...

武培轩 发布于 2020-02-13 01:11 评论(0)阅读(36)
0

牛客练习赛56 B 小琛和他的学校

题目链接:https://ac.nowcoder.com/acm/contest/3566/B 思路:一条路可把图分为左右两部分。 l_ci, l_peo, r_ci, r_peo, w 分别为左边城市数和人数,右边城市数和人数,该路的费用。 我们知道,左边的人要去右边的r_ci个城市,右边的人要去 ...

SummerMingQAQ 发布于 2020-02-13 00:59 评论(0)阅读(18)
0

牛客练习赛56 E 小雀和他的王国

题目链接:https://ac.nowcoder.com/acm/contest/3566/E 思路:tarjan缩点,桥重建图,dfs跑树的直径。 1 #include <iostream> 2 #include <cstdio> 3 #include <vector> 4 #include <a ...

SummerMingQAQ 发布于 2020-02-13 00:48 评论(0)阅读(11)
0

浮点数二分算法

一、浮点数二分算法 1.1 编写浮点数二分,记住下面的内容,代码也就游刃有余了! (1) 首先找到数组的中间值,mid=(left+right) 1,区间[left, right]被划分成[left, mid]和[mid , right]。 (2) 然后通过check(mid)判断中间值是不是满足这 ...

界内嘻哈 发布于 2020-02-12 21:19 评论(0)阅读(20)
0

整数二分算法

一、整数二分算法 1.1 编写整数二分,记住下面的内容,代码也就游刃有余了! (1) 首先找到数组的中间值,mid=(left+right) 1,区间[left, right]被划分成[left, mid]和[mid + 1, right];如果是mid = l + r + 1 1,区间[left, ...

界内嘻哈 发布于 2020-02-12 20:55 评论(0)阅读(27)
0

二维数组中的查找

题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路 从左下角开始查找, 当要查找数字比左下角数字大时,右移; 当要查找数字比左下角数字小时,上 ...

东寻 发布于 2020-02-12 20:45 评论(0)阅读(11)
0

洛谷P5661 公交换乘(CSP-J 2019 T2)

传送门 题目可能排版有问题,导致出现一些乱码,具体请参考洛谷原题 题目描述 著名旅游城市 B 市为了鼓励大家采用公共交通方式出行,推出了一种地铁换乘公交车的优惠方案: 在搭乘一次地铁后可以获得一张优惠票,有效期为 45 分钟,在有效期内可以消耗这张优惠票,免费搭乘一次票价不超过地铁票价的公交车。在有 ...

春晖のszh 发布于 2020-02-12 19:25 评论(0)阅读(16)
0

归并排序算法

一、归并排序算法 1.1 编写归并排序,记住下面的内容,代码也就游刃有余了! (1) 首先确定数组的中间位置的分界点(下标),也就是mid=(left+right) 1,分成left,right两段。 (2) 然后递归排序left,right两端。 (3) 最后就是将两个有序的数组归并,合二为一,这 ...

界内嘻哈 发布于 2020-02-12 16:45 评论(0)阅读(14)
0

leetcode| 84. 柱状图中最大的矩形

给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。 以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。 图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。 示例: ...

东寻 发布于 2020-02-12 16:03 评论(0)阅读(25)
0

复杂度

复杂度 复杂度分析 1. 数据结构和算法的目标:快、省,即执行效率和资源消耗 2. “事后统计法”具有很大局限性,提前预估效率很重要 3. 复杂度分析是学习算法的精髓和分析算法的利器 时间复杂度 1. 假设每行代码执行时间意义,所有代码的执行时间 和每行代码的执行次数 成正比。 2. 大O时间复杂度 ...

pgjett 发布于 2020-02-12 14:25 评论(0)阅读(48)
0

什么是栈?

本文将介绍一个重要的 "数据结构" —栈,和之前讲到的 "链表" 、 "数组" 一样也是一种数据呈 线性排列 的数据结构,不过在这种结构中,我们只能访问最新添加的数据。栈就像是一摞书,拿到新书时我们会把它放在书堆的最上面,取书时也只能从最上面的新书开始取。 栈 如上就是栈的概念图,现在存储在栈中的只 ...

武培轩 发布于 2020-02-11 23:45 评论(0)阅读(31)
0

leetcode| 56. 合并区间

给出一个区间的集合,请合并所有重叠的区间。 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. 示例 2: 输入: [[1,4],[4,5]] ...

东寻 发布于 2020-02-11 23:35 评论(0)阅读(51)
0

最小生成树算法总结(Kruskal,Prim)

今天复习最小生成树算法。 最小生成树指的是在一个图中选择n 1条边将所有n个顶点连起来,且n 1条边的权值之和最小。形象一点说就是找出一条路线遍历完所有点,不能形成回路且总路程最短。 Kurskal算法 kurskal算法的核心思想是将边按权值排序,每次选出权值最小的边,只要不会形成回路就加入结果集 ...

青空哲也 发布于 2020-02-11 21:50 评论(0)阅读(19)
0

快速排序算法

一、快速排序算法(冒泡排序算法的升级版) 1.1 编写快速排序,记住下面的内容,代码也就游刃有余了! (1) 首先确定分界点:分界点设为x,可以取q[left],q[(left+right) 2],q[right]任意一个,建议就取中间值。 (2) 取完分界点,然后就可以重新调整区间:分为=x 两个 ...

界内嘻哈 发布于 2020-02-11 21:05 评论(0)阅读(43)
0

Linux内核单链表

主要说明Linux内核中单链表操作的关键思想,需要注意的地方 1. 假设 1. 为了说明关键思想,对数据结构进行了精简 2. 数据结构定义 3. 链表操作 3.1 创建链表 1. 关键思想:链表实际上是通过next指针链接起来的,所以只需要控制next指针里存储什么地址,就可以建立节点之间的链接关系 ...

wengle 发布于 2020-02-11 19:13 评论(0)阅读(21)
0

纪中集训2020.02.09【NOIP提高组】模拟B 组总结反思

[TOC] JZOJ.1747【NOIP2014模拟11.5】无穷迷宫 比赛时 比赛时没多想,随便打了一个BFS,把迷宫复制成五份——上下左右中,然后跑BFS,如果能从1个S跑到另1个S,就可以无尽走下去否则不可以,WA30。 之后 其实,有一种特殊情况没有考虑例如下面这个: 我们发现,如果按照我的 ...

MxCoder 发布于 2020-02-11 13:04 评论(0)阅读(13)
0

[LeetCode] 2. Add Two Numbers

1. 原题链接:https://leetcode.com/problems/add two numbers/ 2. 解题思路 1. 两个链表相加的解题思路比较直接 2. 需要注意两个链表的长度不同,有些边界情况需要考虑周到 3. 考虑进位的情况 3. 算法 3.1 直观算法 1. 首先,遍历两个链表 ...

wengle 发布于 2020-02-10 22:40 评论(0)阅读(7)
0

CF1300E Water Balance

"题目链接" problem 给出一个长度为n的序列,每次可以选择一个区间$[l,r]$并将区间$[l,r]$内的数字全部变为这些数字的平均数。该操作可以进行任意多次。 求出进行任意次操作后可以得到的字典序最小的序列。 solution 可以证明不存在一个数字被进行两次或以上运算。即不存在如下情况: ...

wxyww 发布于 2020-02-10 10:19 评论(0)阅读(26)