紧急求助!!!!!如下题目!!!
有一个如下的整数三角阵:1
2 3
4 5 6
... ...
n n+1 ... n+k
三角阵的水平方向为X轴,右上至左下方向为Y轴,这两个轴唯一确定了
三角阵中的任意一个整数的坐标。比如整数1的坐标是(1,1),整数
5的坐标是(3,2)。现要求给出三角阵中的任意一个整数,求出该整
数对应的坐标。比如:给出整数4,需要求出其坐标(3,1)。要求给
出一个算法的描述,该算法要求尽可能的快,不需要写源代码。然后回答
以下问题:
1.你的算法的时间复杂度是多少?
2.从时间复杂度的角度来说你的算法是最优的么?为什么? --------------------编程问答-------------------- 楼主早上好,老实说真的惭愧的要死,名词很熟悉,让我具体说说我还真说不来怎么算,悔当年没好好学
马上 Google一下 去
以下是我写的一笑段 楼主参考一下吧
int a = 40; // 随便定义了一个数测试一下
int rn=0; // 行
int cn=0; // 列
for (int i = 0; i <= a; i++)
{
if (i * (i + 1) / 2 >=a)
{
rn = i ;
cn = a - (i * (i - 1)/2);
break;
}
}
Console.WriteLine("Row:" + rn.ToString() + " Col:" + cn.ToString());
Console.Read();
没仔细调试 可能错的也有可能 包含包含 哈哈
时间复杂度 如果我没记错的话 应该就是 O(a) 哈哈 刚刚Google的 哈哈 不要见笑
--------------------编程问答-------------------- 时间复杂度 貌似我也记不得了。 --------------------编程问答-------------------- 算法面试题 --------------------编程问答-------------------- 就是一个变相的“树”的问题,给出你一个数,
1、能求出是第几层吗?
2、根据层数能确定最小值及最大值,这样也就不难确定这个数的所在层的位置了,
所以时间复杂度应为O(1); --------------------编程问答-------------------- 如果还搞不定,回头看看数据结构“树”那一章,关于求树的结点所在的层及列,还有每层的结点个数吧,一模一样的题目; --------------------编程问答--------------------
对待一个如此有规律的问题,大可不必这样做,如果你确定给定的a很少很小的话,这样做效率影响不大,如果a到了成千上百,就比较麻烦了, --------------------编程问答--------------------
楼上说的没错,在上面的问题程序里面再加一个遍历算法 --------------------编程问答-------------------- --------------------编程问答-------------------- 楼上说得很有道理 小弟谢过,考试题 呵呵 起先想到跟sf差不多,没太多想,现在想想确实,谢过
补充:.NET技术 , C#