如何判断列表元素是否无效
How To Find Out If A Listelement Is Invalid
我得到了两个列表,其中包含 (studentID, examID, points)、examList 和 practiceList
形式的元组
学号是七位正数。
examID是这样生成的:examID = randomInteger - studentID.
我们可以假设 exameID 总是:9.999.999 >= examID >= 10.000.000
对于每个 examID,我选择一个我以前没有使用过的 randomInteger。如果 examID 的结果也是七位数字(如学生 ID),我只使用 randomInteger。
假设 examList 中有一些无效条目。无效条目将采用以下形式:(examID, studentID, points),因此交换 examID 和 studentID。
所以如果我想使用这两个列表,例如计算每个学生的总分,我首先需要找出哪些条目是无效的。
那么 我怎样才能知道一个条目是有效的还是无效的?(最好以高效的方式)
事情太明显了。
examID是这样生成的:examID = randomInteger - studentID
我们知道 randomInteger 对每个学生都是唯一的。
所以如果我们像这样改变等式:randomInteger = examID + studentID,我们只会得到 unique 整数值。
我们可以使用这个等式作为散列函数来生成散列table.所以我们确保每个学生在散列 table.
中都有自己的索引
通过这种方式,我们可以确保 线性 运行 时间的 O(n)。
也可以以我们只需要 执行散列函数 2*n 次 的方式构建算法。 (n为学生人数)
我得到了两个列表,其中包含 (studentID, examID, points)、examList 和 practiceList
形式的元组学号是七位正数。
examID是这样生成的:examID = randomInteger - studentID.
我们可以假设 exameID 总是:9.999.999 >= examID >= 10.000.000
对于每个 examID,我选择一个我以前没有使用过的 randomInteger。如果 examID 的结果也是七位数字(如学生 ID),我只使用 randomInteger。
假设 examList 中有一些无效条目。无效条目将采用以下形式:(examID, studentID, points),因此交换 examID 和 studentID。
所以如果我想使用这两个列表,例如计算每个学生的总分,我首先需要找出哪些条目是无效的。 那么 我怎样才能知道一个条目是有效的还是无效的?(最好以高效的方式)
事情太明显了。
examID是这样生成的:examID = randomInteger - studentID 我们知道 randomInteger 对每个学生都是唯一的。
所以如果我们像这样改变等式:randomInteger = examID + studentID,我们只会得到 unique 整数值。
我们可以使用这个等式作为散列函数来生成散列table.所以我们确保每个学生在散列 table.
中都有自己的索引通过这种方式,我们可以确保 线性 运行 时间的 O(n)。 也可以以我们只需要 执行散列函数 2*n 次 的方式构建算法。 (n为学生人数)