题意: 找出一个数组内和为0的三元组,元组不能重复
思路1:.直接暴力DFS,这样会超时,不过先排序加上剪枝的花据说能够AC
思路2:先排序O(N*log(N)),然后遍历a 从0 到 nums.length - 2, 结下来的问题就简化为2Sum的问题了 复杂度O(N*N)
代码:
public List> threeSum(int[] num) {
List> ...
分类:
其他好文 时间:
2015-04-01 20:05:40
阅读次数:
141
已知三个升序整数数组a[l], b[m]和c[n]。请在三个数组中各找一个元素,是的组成的三元组距离最小。三元组的距离定义是:假设a[i]、b[j]和c[k]是一个三元组,那么距离为:
Distance = max(|a[ I ] – b[ j ]|, |a[ I ] – c[ k ]|, |b[ j ] – c[ k ]|)
请设计一个求最小三元组距离的最优算法,并分析时间复杂度。...
分类:
其他好文 时间:
2015-03-30 16:28:33
阅读次数:
142
题目地址:http://poj.org/problem?id=1325给出一系列任务,每个任务用三元组(i,x,y)表示,代表任务i可以在机器A的x模式,或者在机器B的y模式下完成。机器A和B每切换一次模式需要重启一次。问完成这些任务,最少需要重启机器多少次?关于(i,x,y),从机器A的x向机器B...
分类:
系统相关 时间:
2015-03-29 15:03:34
阅读次数:
171
题目大意:
求满足以a、b为直角边,c为斜边,并且满足a + b + c n,且若m为奇数,则n为偶数,若m为偶数,则n为奇数。
枚举m、n,然后将三元组乘以i倍,保证 i * (x + y + z)在所给范围内(2 * m^2 + 2 * m*n <= L),
就可以求出所有满足条件的三元组。...
分类:
其他好文 时间:
2015-03-20 00:05:21
阅读次数:
213
题目大意:
给一个整数N,求N范围内的本原的毕达哥拉斯三元组的个数,以及N以内毕达哥拉斯三元组不涉及
数的个数。
思路:
本原毕达哥拉斯三元组x^2 + y^2 = z^2 满足 x = m^2 - n^2,y = 2*m*n,z = m^2 + n^2,其
中m > n,且若m为奇数,则n为偶数,若m为偶数,则n为奇数。要求所给范围N内的本原毕达哥拉
斯三元数组,只需枚举m、n,然后将三元组x、y、z乘以i(保证i*z在所给范围内,因为z>x且z>y),
就可以求出所有的毕达哥拉斯三元组。
注意:因为在...
分类:
其他好文 时间:
2015-03-19 22:01:29
阅读次数:
105
迷宫问题
以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。
要求:
(1)首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。
(2)测试几组数据,数据的规模由小变大,...
分类:
编程语言 时间:
2015-03-14 13:56:57
阅读次数:
201
转载请注明出处,谢谢:http://www.cnblogs.com/KirisameMarisa/p/4303365.html ---by 墨染之樱花题目链接:http://poj.org/problem?id=1201题目描述:给出n个整数三元组(x,y,c),求一个整数集合Z,使其对每个前述三元...
分类:
其他好文 时间:
2015-02-27 16:52:28
阅读次数:
170
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3038题目描述:某个无聊的骚年给他的女友(烧!)一系列三元组x,y,c,表示序列中ax+ax+1+...+ay=c。但是其中有一些是错误的,也就是与前面的信息出现了冲突,比如给了1,2,6和3,4,5接着...
分类:
其他好文 时间:
2015-02-23 16:37:27
阅读次数:
147
??
练习2.41
这道题其实就是书中素数示例的变种,其本质是一样的。因此我们也按照同样的次序来完成这个过程。首先第一步,我们来完成生成3个相异整数构成的三元组。但在上一题中我们已经写出了能够产生2个相异整数构成的二元组了。因此我们只要多产生一个i,让其与产生的二元组结合,便能产生三元组了。那么,开工吧。
(define (unique-triples n)
(fla...
分类:
其他好文 时间:
2015-02-23 09:47:06
阅读次数:
126
题目链接
#include
int main()
{
int n;
while(~scanf("%d",&n))
{
if(n>=7)
printf("3 5 7\n");
else
printf("No triple\n");
}
return 0;
}...
分类:
其他好文 时间:
2015-02-16 10:18:28
阅读次数:
172