
数据结构与算法
ガッシュ·ベル
编程使我快乐!
展开
-
POJ 二分查找 快速找到和为零的四个数
问题描述定义求和问题如下:给定4组整数A,B,C,D,找到有多少四元组(a,b,c,d)∈A×B×C×D,满足条件a+b+c+d=0。此问题中,假设A,B,C,D具有相同的大小n。输入数据输入包含多组测试数据。每组测试数据的第一行包含一个整数n,表示A,B,C,D的元素个数(n<=4000)。接下来n行每行4个整数,分别属于A,B,C,D,每个整数的大小在-228~228之间。输出要...原创 2018-10-25 11:43:31 · 1271 阅读 · 0 评论 -
二分查找
基本思想二分查找又叫折半查找,其基本思想是:将列表中间位置的元素与目标元素比较,如果两者相等,则查找成功;否则将列表从中间位置分开,分成前、后两个子列表,如果中间位置的元素大于目标元素,则进一步查找前一子列表,否则进一步查找后一子列表。重复以上过程,直到找到满足条件的元素,使查找成功;或子表为空,此时制定元素不在列表内部。例如:有序列列表:L=[1,4,8,9,12,63,79]查找元素:...原创 2018-10-23 21:14:41 · 7203 阅读 · 0 评论 -
队列+BFS
队列相关定义队列是一种线性存储表,元素数据的插入在表的一端进行,在另一端删除,从而构成了一个先进先出的FIFO(First In First Out)表。队头&队尾:插入一端称为队尾,删除一端称为队头。STL——queue对象定义*queue模版类的定义在<queue>头文件中。*queue模版类需要两个模版参数,一个是元素类型,一个是容器类型。定义queue对象...原创 2018-11-04 19:08:20 · 2757 阅读 · 0 评论 -
小游戏(poj) 回溯
问题传送门->The Game解题思路迷宫求解问题,递归求解。通过穷举方式找到从起点到终点的路径,朝一个方向走下去,如果走不通,则换一个方向走;四个方向都走不通,则回到上一步,再换一个方向走;依次走下去,直到走到终点。该问题的路径只包含水平和竖直的直线段,所以需要记录每一步走的方向。如果上一步走的方向和这一步走的方向相同,递归搜索时路径数不变,否则路径数加1.另外根据题意,路径只包含水...原创 2018-11-28 23:08:56 · 364 阅读 · 1 评论 -
数据结构——单链表实现
链式存储特点在链式存储中,节点之间的存储单元地址可能是不连续的。链式存储中每个结点都包含两部分:存储元素本身的数据域和存储结点地址的指针域。结点中的指针指向的是下一个结点,也就是存储的下一个结点的地址。链式存储的实现1.创建链表在创建链表时,头结点不存储数据,但可以保存链表的信息。struct Header{ int length;//记录链表大小 struct Nod...原创 2018-12-27 15:14:12 · 198 阅读 · 0 评论 -
数据结构学习——线性表的结构体定义和基本操作
线性表的结构体定义#define maxSize 100 //定义一个整型常量maxSize,值为1001.顺序表的结构体定义typedef struct{ int data[maxSize]; int length;}Sqlist;也可以这么定义,简洁:int A[maxSize];int n;2.单链表结点定义typedef struct LNode{ i...原创 2019-03-15 19:33:52 · 2504 阅读 · 2 评论 -
线性dp题型总结
LIS问题 最长上升子序列poj-Longest Ordered Subsequence状态方程#include <cstdio>#include <algorithm>#include <cstring>#include <vector>#include <iostream>using namespace std;in...原创 2019-03-21 15:44:08 · 336 阅读 · 0 评论