- 博客(8)
- 收藏
- 关注
原创 OnlineJudge-OJ最头疼的输入输出问题
OnlineJudge输入输出问题 通常来说OJ对于每道题里面有.in和.out文件,分别表示测试数据的输入和输出。如果某些编程题的所有数据都只做在一个.in和一个.out中,这样就会变成多组测试了,所以需要提交的代码中循环处理。 其实这个问题可以避免,就是编程题后台每个样例做一组对应的.in和.out文件,这样就变成单组测试,代码就不需要循环处理,但是平时练习的题目质量不一,这个问题都会出现。 ...
2019-08-31 21:46:41
1609
原创 数据结构与算法——滑动窗口问题
问题引入 【问题】 有一个整型数组arr和一个大小为w的窗口从数组的最左边滑到最右边,窗口每次 向右边滑一个位置。 例如,数组为[4,3,5,4,3,3,6,7],窗口大小为3时: [4 3 5]4 3 3 6 7 4[3 5 4]3 3 6 7 4 3[5 4 3]3 6 7 4 3 5[4 3 3]6 7 4 3 5 4[3 3 6]7 4 3 5 4 3[3 6 7] 窗口中最大值为5 窗口...
2019-08-31 21:34:21
370
原创 数据结构与算法——二叉树的Morris遍历
二叉树的Morris遍历 在二叉树的递归遍历中,有函数的递归调用,递归的深度等于二叉树的高度,也就是说递归导致的调用堆栈的高度等于二叉树的高度,这样的话,程序虽然没有显示的通过new 来分配内存,但实际上消耗的内存大小也是 O(h). 如果二叉树的高度很大,例如搜索引擎把几十亿张网页按照权重来组成二叉树的话,那么二叉树的高度也要几十万作用,因此按照传统的中序遍历,需要消耗大量的内存。 下面要讲的M...
2019-08-31 21:20:17
201
原创 数据结构与算法——并查集数组实现
并查集 在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。 并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。 主要涉及操作: 初始化 把每个点所在集合初始化为其自身。 通常来说,这个步骤在每次使用该数据结构...
2019-08-31 19:35:38
624
原创 数据结构与算法——KMP算法模板
KMP算法 KMP算法指的是字符串模式匹配算法,问题是:在主串T中找到第一次出现完整子串P时的起始位置。该算法是三位大牛:D.E.Knuth、J.H.Morris和V.R.Pratt同时发现的,以其名字首字母命名。 下面是KMP算法的C++版本: #include <iostream> #include <string> #include <vector> u...
2019-08-31 19:24:15
289
原创 设计模式之——工厂模式
工厂模式 工厂模式概述 工厂模式(Factory Pattern)是最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 主要解决:主要解决接口选择的问题...
2019-08-31 19:14:01
126
原创 设计模式之——单例模式
单例模式 单例模式概述 单例模式(Singleton Pattern)是 最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 【主要特点】 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实...
2019-08-31 18:59:44
126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人