![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 85
菜小波
决心完成自由梦
展开
-
简单模拟与链表
一些简单的模拟题原创 2022-11-04 10:28:39 · 314 阅读 · 0 评论 -
清华OJ重名剔除(Deduplicate)
重名剔除(Deduplicate)DescriptionMr. Epicure is compiling an encyclopedia of food. He had collected a long list of candidates nominated by several belly-gods. As candidates in list are nominated by several people, duplication of name is inevitable. Mr. Epicur原创 2020-06-04 09:19:14 · 1045 阅读 · 0 评论 -
清华OJ无线广播(Broadcast)
无线广播(Broadcast)DescriptionA broadcaster wants to set up a radio broadcast transmitter in an area. There are n towns in the area, and each town has a transmitter installed and plays its own program.However, the company only licensed the two bands FM104.2原创 2020-06-04 08:55:47 · 1323 阅读 · 1 评论 -
清华OJ旅行商(TSP)
题目旅行商(TSP)DescriptionShrek is a postman working in the mountain, whose routine work is sending mail to n villages. Unfortunately, road between villages is out of repair for long time, such that some road is one-way road. There are even some villages tha原创 2020-06-03 10:49:13 · 1229 阅读 · 0 评论 -
真二叉树重构(Proper Rebuild)
题目真二叉树重构(Proper Rebuild)DescriptionIn general, given the preorder traversal sequence and postorder traversal sequence of a binary tree, we cannot determine the binary tree.Figure 1In Figure 1 for example, although they are two different binary tree, t原创 2020-06-03 10:46:22 · 821 阅读 · 0 评论 -
清华OJ列车调度(Train)
题目:列车调度(Train)DescriptionFigure 1 shows the structure of a station for train dispatching.Figure 1In this station, A is the entrance for each train and B is the exit. S is the transfer end. All single tracks are one-way, which means that the train can原创 2020-06-03 10:40:41 · 1301 阅读 · 4 评论 -
清华OJ灯塔
灯塔题目分析我的代码:题目DescriptionAs shown in the following figure, If another lighthouse is in gray area, they can beacon each other.For example, in following figure, (B, R) is a pair of lighthouse which can beacon each other, while (B, G), (R, G) are NOT.Inpu原创 2020-05-28 15:27:32 · 789 阅读 · 4 评论 -
清华OJ祖玛(Zuma)
@TOC题目DescriptionLet’s play the game Zuma!There are a sequence of beads on a track at the right beginning. All the beads are colored but no three adjacent ones are allowed to be with a same color. You can then insert beads one by one into the sequence.原创 2020-05-28 11:10:49 · 1618 阅读 · 4 评论 -
清华OJ范围查询
范围查询题目:我的代码:题目:范围查询(Range)DescriptioinLet S be a set of n integral points on the x-axis. For each given interval [a, b], you are asked to count the points lying inside.InputThe first line contains two integers: n (size of S) and m (the number of quer原创 2020-05-28 10:58:42 · 691 阅读 · 2 评论 -
数据结构绪论代码实现
数据结构绪论代码实现写在前面数据表的构造型类型定义选择排序顺序搜索写在前面由于学习时间紧迫,买来的书刚刚到,想要从前往后过一遍,所以这里不写注释,只是简单的记录敲的部分代码,朋友们可以共同敲一下,熟能生巧,如果想要了解代码来源,可以自己参考殷人昆教授的数据结构与算法第二版教材,加油!数据表的构造型类型定义#define ListSize 100typedef int DataType;typedef struct{ DataType data[ListSize]; int len原创 2020-05-13 16:34:22 · 161 阅读 · 0 评论 -
字符串匹配
字符串匹配暴力求解:KMP暴力求解:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int ViolentMatch(char* s, char* p){ int slen = str...原创 2020-04-23 16:53:10 · 149 阅读 · 0 评论 -
斐波那契数问题各个子问题的值及该子问题的个数
问题斐波那契数问题,如果采用递归求解,算法效率非常低:O( 2n )。而如果采用递推求解(动态规划自底向上求解),算法效率非常高:O(n)。现在请你编写程序,统计计算一个斐波那契数时分解出的各子问题的个数。斐波那契数的定义如下:Fib(0)=0Fib(1)=1Fib(n)=Fib(n-1)+Fib(n-2)输入: 一个整数n,即计算Fib(n)输出:n+1行,即各个子问题的值及该子...原创 2020-04-11 14:39:16 · 342 阅读 · 0 评论 -
贪心策略入门
贪心策略入门适用场景:贪心算法贪心选择最优子结构举例(活动安排问题)问题分析:我的代码:证明算法的正确性:适用场景:求解最优化问题。一般说来,只要具有最优子结构性质(全局最优解里包含子问题的最优解)而且具有贪心选择性质(整体的最优解可以通过局部的一步一步的最优选择来达到)的问题才能用贪心算法。贪心算法贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不...原创 2020-04-11 14:32:10 · 208 阅读 · 0 评论 -
有序列表
有序列表有序列表的唯一化有序列表的唯一化template <typename T>int List<T>::uniquify(){ //成批剔除重复元素 if(_size < 2) return 0; // 平凡列表无重复 int oldSize = _size; //记录原规模 ListNodePosi(T) p = first(...原创 2020-04-10 18:24:21 · 110 阅读 · 0 评论 -
列表
列表引入与总述:引入与总述:列表和向量一样,也是典型的线性结构,列表与向量在几乎所有方面都是对称互补的!列表list是采用动态储存策略的典型结构,其中的元素称为节点(node);各个节点通过指针或引用彼此联接,在逻辑上构成一个线性序列。相邻节点彼此互称前驱(predecessor)或后继(successor)。前驱或后继若存在则必然唯一。除了首节点(first/front)其它节点都有唯一前...原创 2020-04-10 16:38:27 · 86 阅读 · 0 评论 -
顺序存储结构实现线性表ADT
顺序存储结构实现线性表ADT方法一:方法二线性表是最常见和常用的ADT。假设线性表的元素为整数,请基于顺序存储结构实现线性表ADT。基本功能包括:(1)建立线性表;输入有两行,第一行是一个整数n,线性表的长度; 第二行是n和数据元素(2)插入:输入两个整数,即元素插入的位置和元素值(3)删除:输入一个整数,即要删除的元素(4)搜索:输入一个整数,即搜索元素的值(5)输出:输...原创 2020-04-06 14:13:44 · 619 阅读 · 0 评论 -
链式存储的线性表
链式存储的线性表存储方式:特点:存储方式:用任意存储空间单元来存放线性表的各个元素,在存放每个元素的同时,也存放相关元素的信息(相关元素的存储地址),即用指针来表示元素之间的逻辑关系。存储一个元素占用的空间称为一个结点。特点:存储线性表的空间不一定连续;逻辑关系是由指针(地址)来表示(存储);元素在逻辑上相邻的,在物理上不一定相邻;非随机存取(顺序存取),即访问任何一个元素的时间不...原创 2020-04-06 14:10:51 · 211 阅读 · 0 评论 -
顺序存储的线性表
线性表线性表:n(n>=0)个相同特性的数据元素的有限序列,数据元素之间具有线性关系。线性关系:除第一个元素外,每个元素有且仅有一个前驱;除最后一个元素外,每个元素有且仅有一个后继。特点:数据元素之间的关系是它们在数据集合中的相对位置。...原创 2020-04-05 20:32:59 · 469 阅读 · 0 评论 -
STL-ACM入门必备
STL的基础知识STL包括:容器(containers)、迭代器(iterators)、空间配置器(allocator)、配接器/适配器(adapters)、算法(algorithms)、仿函数(functors)六个组件。STL容器作为常用数据结构,大致分为两类:1)序列容器,即通过序列化访问的容器,如vector,list,deque;2)关联容器,即通过键值对访问的容器,如set,...原创 2020-03-16 12:42:01 · 210 阅读 · 0 评论 -
向量vector
向量vector从数组到向量最基础最简单最实用的东西放前面Vector模板类构造与析构复制从数组到向量数组A[]中的元素与[0, n)内的编号是一一对应的。每个元素均由(非负)编号唯一指代,并可直接访问。A[ i ]的物理地址 = A + i*s , s为单个元素所占用的空间量。因此也被称为线性数组(linear array)。向量是数组的抽象与泛化,由一组元素按线性次序封装而成。各...原创 2020-03-16 12:40:36 · 262 阅读 · 0 评论 -
STL之vector在ACM中的应用
vector前言下面是ACM中的使用干货:基础操作头文件初始化:敲黑板!重头戏!!!内置函数的使用访问二维vector的定义前言只有干货和实战经验,想要深入学习了解,可去看我的数据结构与算法专栏比如vector:无序向量Vector下面是ACM中的使用干货:基础操作头文件进行vector操作前应添加头文件#include < vector >初始化:vect...原创 2020-03-15 01:48:22 · 1159 阅读 · 2 评论 -
有序向量
有序向量全文不少于6000字,请认真对待,可关注我哦判断向量的有序性唯一化低效算法高效算法有序向量的查找接口二分查找原理评估查找算法的性能fibonacci查找二分查找的改进插值查找(Interpolation Search)复杂度分析:可行性分析:排序冒泡排序优化归并排序二路归并的基本实现:对代码的解释:进一步优化:判断向量的有序性template <typedef T> //...原创 2020-03-14 23:21:19 · 626 阅读 · 0 评论 -
可扩充向量与无序向量
可扩充向量原创 2020-03-13 23:57:36 · 302 阅读 · 0 评论 -
数据结构与算法之动态规划浅讲
make it work, make it right, make it fast!即从递归(效率往往不能让人满意)到 迭代!斐波那契数列:最low递归解法:第43项 需要1秒第67项 需要1天第92项 需要3生三世所以严格意义上来讲,这根本不算是一个算法!int fib(n) { return (2 > n) ? n : fib(n-1) + fib(n-2);}很...原创 2020-03-13 17:56:33 · 153 阅读 · 0 评论 -
数据结构与算法之迭代递归
凡治众如治寡,分数是也。数组求和:迭代int SumI(int A[], int n){ int sum = 0; //O(1) for(int i=0; i<n; i++) //O(n) sum += A[i]; //O(1) return sum; //O(1)}减而治之:将大问题划分为两个子问题:一个平凡问题和一个规模缩减并且形式与原问题形式相同的问题。...原创 2020-03-13 15:39:22 · 295 阅读 · 0 评论 -
数据结构与算法学习之算法入门笔记
关于计算:对象:规律、技巧。目标:高效、低耗。Computer science ------ Computing scienceCPU 目前大概是1s 9次方的运算。而1天大概为 10的五次方秒;一生用一世纪来估算,大概3* 10^4 days 即 3* 10 ^9秒;三生三世 大概是300年 估算10 ^10秒;所以在三生三世中的一天 相当于 一天中的一秒。现在估计宇...原创 2020-03-13 14:04:49 · 185 阅读 · 0 评论