注意:只是为了抬头,这不是我学校的任务,因为我自己甚至不知道哪所学校写了这个问题.希望没有误会.
我发现这个关于更衣室的有趣问题:
Rec的更衣室有N个储物柜,标有1,2,.... ..,N.
每个储物柜都已锁定,但可以使用其唯一的钥匙打开.
每个储物柜钥匙的副本都在其相邻的储物柜内; 即,储物柜钥匙的副本i被放置在储物柜i + 1和i-1中(储物柜1的钥匙仅在储物柜2中,储物柜N的钥匙仅在储物柜N-1中).
T网球在T个不同的储物柜内(你知道他们在哪个储物柜里).您将获得M个储物柜的钥匙,您的目标是通过打开最少数量的储物柜来收集所有网球.
我必须向一些新生提出这个问题,但我想先确定我自己已经预先得到了正确的答案.
我在想的是:
需要逐一检查球.因此,对于每个球(忽略其他球),每个球必须通过遍历指定的球来访问.对于每个键,计算访问球所需的步骤.最小的结果存储在称为"总步数"的变量中.
对下一个球做这个确切的事情,当我得到当前球的最小步数.我将此值添加到"总步骤".
如果钥匙上方有一个球,则应用特殊条件,然后键开始从i + 1和i-1移动.
我的问题是:我是对的吗?我不想将错误的算法分享给其他人,因为它不专业.期待任何意见,建议和意见.
我有一个关于触发器的问题。
假设我有两个表,一个名为'studentData',另一个称为'studentStanding'。
“studentData”是一个由教师 ID、学生 ID 和评分组成的表。所以不同的老师可能会给同一个学生不同的评分
(例如:teacherID: 1 给studentID: 3 评分为5,而teacherID: 7 给studentID: 3 评分为10)
StudentStanding是由studentID、studentName和averageRating组成的表。
我的目的是创建一个触发器;
每次新老师(例如教师 ID:120)对学生 ID:3 进行评分时,此触发器将重新计算该学生 3 的平均评分。
我曾尝试编写触发器,但我很确定它是完全错误的。它看起来是这样的:
CREATE TRIGGER updateAVG
AFTER INSERT ON studentData
REFERENCING NEW AS N_ROW
FOR EACH ROW
UPDATE studentStanding SET Rating = (
Select AVG(Rating)
from studentData
)
Run Code Online (Sandbox Code Playgroud)
我期待着任何可以帮助我的人。也请随意对我的触发器提出建议。谢谢。
注意:我保证,这不是学校作业!