给定数组,求解一个三元组,是元素相加为零,且三元组不能重复,并且有序。
思路如下:
先排序,固定第一个指针指向开头,第二个指针指向后一个元素,第三个指针指向最后一个元素。
让这三个元素相加,如果结果大于零,让最后一个元素向前移动,再次求和,反之亦然。但要确保第三个元素在第二个元素后面。
这样依次添加进向量中即可,只要保证三个指针的顺序不乱就能保证三元组有序。怎么确保不重复,也就是确保三元组都不相同。
这是个需要着重考虑的问题,很绕,本题的难点就在这里。顺着下面的代码走一遍就能很清楚的知道了。...
分类:
其他好文 时间:
2014-05-26 05:50:05
阅读次数:
193
以前一直一位set.end()是代表最后一个元素,原来只是个标记,怪不得一直出错,同时erase在multiset中会删除相同的元素。
本题很明显的greedy,排列后前后两个元素能否组合,不能删除最大元素,再组合,写的比较蠢,不想改了#include
#include
using namespace std;
int main()
{
int N;
cin>>N;
while(N--)
...
分类:
其他好文 时间:
2014-05-25 11:19:57
阅读次数:
227
通过顺序来选择
顺序选择的过滤器(filter)有
:first 第一个元素:last 最后一个元素:even 序号为偶数的元素:odd 序号为奇数的元素:eq(n) 序号等于n的元素 :lt(n)序号小于n的元素 :gt(n)序号大于n的元素
如果有如下的表格
0
even
1
odd
2
even
3
odd
4
even...
分类:
Web程序 时间:
2014-05-24 23:00:48
阅读次数:
381
1,数组是什么?
2,一位数组和多维数组的定义?
3,如何声明和初始化数组?
数组是一组数据存储位置,其中每个位置的名称相同,存储的数据类型也相同。
数组横纵的数据存储位置被称为数组元素。
一位数组只有一个下标。下标是数组名后面位于方括号中的数字,可用于指出数组中各个元素的编号。
注意:
数组元素从0开始编号,最后一个元素的编号比数组包含的元素少1。
#de...
分类:
其他好文 时间:
2014-05-23 07:28:40
阅读次数:
263
1 使用First()/FirstOrDefault()、Last()/LastOrDefault()方法返回序列中的第一个或者最后一个元素时,应该确保序列已经被正确排序。
int[] numbers = { 3, 1, 23, 10, 5, 12, 7, 2, 4};
int first = numbers.First(); //输出3
int firstOrdered = numbers.O...
分类:
其他好文 时间:
2014-05-22 07:35:10
阅读次数:
196
一个序列有N个数:A[1],A[2],A[3]……A[N],求最长非降子序列的长度。最重要的是要找出所谓的“状态”,本题目中是d[i],初始化最长长度为自己本身即一个单位长度。看是否要加入第i个元素,如果第i个元素a[i]比当前序列的最后一个元素a[j]大的话,那么加入,同时d[i]=d[j]+1;...
分类:
其他好文 时间:
2014-05-22 05:54:06
阅读次数:
228
出题:输入一个整数数组,判断该数组是否符合一个二元查找树的后序遍历(给定整数数组,判定其是否满足某二元查找树的后序遍历);分析:利用后序遍历对应到二元查找树的性质(序列最后一个元素必定是根节点,从左向右第一个比根节点大的元素开始直到根节点之前的所有元素必定在右子树,之前的所有元素必定在左子树);解题...
分类:
其他好文 时间:
2014-05-19 12:13:54
阅读次数:
357
这道题目与上道题目一样,采用数组来作为保存二叉树节点的数据结构,会使测试代码更容易编写。具体的实现算法在代码中比较容易看懂,不细说了,主要想说下,测试时遇到的一些问题(最后AC了):
1、先序遍历的输出要符合要求的格式,即对于每一个测试用例来说,输出的各节点元素间要有一个空格,且输出最后一个元素后要没有空格,但要输出一个换行符,这就要判断出程序什么时候遍历输出最后一个元素,再递归实现的先序遍历函数中,我没想到能使最后一个元素符合输出格式的方法,因此我这里定义了一个int数组,用来顺序保存先序遍历的节...
分类:
其他好文 时间:
2014-05-18 03:37:21
阅读次数:
381
题意:从一个已排序的数组中移除掉重复的元素
思路:用下标i扫描旧数组,用下标j来保存新数组的尾部
如果旧数组的当前元素与新数组的最后一个元素相同,则继续扫描旧数组
如果不同,新数组的下标前移一们,将旧数组的当前元素赋给新数组,继续扫描旧数组
相关题目:
Remove Element
Remove Duplicates from Sorted List
Remove Duplicates from Sorted List II...
分类:
其他好文 时间:
2014-05-15 06:57:53
阅读次数:
249
ADT 线性表(List)
Data
线性表的数据对象集合为{a1,a2,…,an},每个元素的类型均为DataType。
其中,除第一个元素a1外,每一个元素有且只有一个直接前驱元素,除了最后一个元素an外,每一个元素有且只有一个直接后继元素。
数据元素之间的关系是一对一的关系。
Operation
InitList(*L): 初始化操作,...
分类:
编程语言 时间:
2014-05-15 03:39:54
阅读次数:
357