力扣刷题（5月16日）

跳跃游戏

给定一个非负整数数组 nums ，你最初位于数组的 第一个下标 。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标。

示例 1：
输入：nums = [2,3,1,1,4]
输出：true
解释：可以先跳 1 步，从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。

示例 2：
输入：nums = [3,2,1,0,4]
输出：false
解释：无论怎样，总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 ， 所以永远不可能到达最后一个下标。

能运行通过，但是不可以提交！！！

Copy
class Solution {
public boolean canJump(int[] nums) {
int max=0;
for(int i=0;i<nums.length;++i){
if(i<=max)
max=Math.max(max,i+nums[i]);
if(max>nums.length-1)
return true;
}
return false;
}
}

加一下数据库的知识吧！

假设你的数据库表结构如下：

学生表（Students）：学号（StudentID），姓名（Name），等等

成绩表（Scores）：学号（StudentID），课程号（CourseID），成绩（Score）

课程表（Courses）：课程号（CourseID），课程名（CourseName），教师号（TeacherID）

教师表（Teachers）：教师号（TeacherID），姓名（TeacherName）

你可以使用以下的 SQL 查询语句来获取平均成绩大于 60 分的学生的学号和平均成绩：

Copy
SELECT Students.StudentID, AVG(Scores.Score) AS AverageScore
FROM Students
JOIN Scores ON Students.StudentID = Scores.StudentID
GROUP BY Students.StudentID
HAVING AVG(Scores.Score) > 60;

这个查询首先通过 JOIN 操作将学生表和成绩表连接在一起，然后使用 GROUP BY 语句按学生的学号进行分组。最后，使用 HAVING 语句筛选出平均成绩大于 60 分的学生。

注意，这个查询假设每个学生的学号在学生表中是唯一的，而且每个学生至少有一门课的成绩。如果这些假设不成立，你可能需要修改查询以适应你的实际情况

假设你的数据库表结构如下：

学生表（Students）：学号（StudentID），姓名（Name），学校（School），等等

成绩表（Scores）：学号（StudentID），课程号（CourseID），成绩（Score）

你可以使用以下的 SQL 查询语句来获取所有学生的学校，姓名，选课数，总成绩：

Copy
SELECT Students.School, Students.Name, COUNT(Scores.CourseID) AS CourseCount, SUM(Scores.Score) AS TotalScore
FROM Students
LEFT JOIN Scores ON Students.StudentID = Scores.StudentID
GROUP BY Students.StudentID;

这个查询首先通过 LEFT JOIN 操作将学生表和成绩表连接在一起，然后使用 GROUP BY 语句按学生的学号进行分组。在每个分组中，COUNT 函数计算选课数，SUM 函数计算总成绩。

注意，这个查询假设每个学生的学号在学生表中是唯一的。如果这个假设不成立，你可能需要修改查询以适应你的实际情况。此外，这个查询使用了 LEFT JOIN，因此即使某个学生没有选课，也会在结果中显示出来（选课数和总成绩会显示为 NULL）。如果你只想显示至少选了一门课的学生，你可以将 LEFT JOIN 改为 JOIN。

假设你的数据库表结构如下：

成绩表（Scores）：学号（StudentID），课程号（CourseID），成绩（Score）

你可以使用以下的 SQL 查询语句来获取课程编号为 2 的总成绩：

Copy
SELECT SUM(Score) AS TotalScore
FROM Scores
WHERE CourseID = 2;

这个查询首先使用 WHERE 语句筛选出课程编号为 2 的所有成绩，然后使用 SUM 函数计算这些成绩的总和。

注意，这个查询假设课程编号在成绩表中是一个字段。如果这个假设不成立，你可能需要修改查询以适应你的实际情况。

假设你的数据库表结构如下：

学生表（Students）：学号（StudentID），姓名（Name），等等

成绩表（Scores）：学号（StudentID），课程号（CourseID），成绩（Score）

你可以使用以下的 SQL 查询语句来获取没有选课的学生的学号和姓名：

Copy
SELECT Students.StudentID, Students.Name
FROM Students
LEFT JOIN Scores ON Students.StudentID = Scores.StudentID
WHERE Scores.StudentID IS NULL;

这个查询首先通过 LEFT JOIN 操作将学生表和成绩表连接在一起。然后，使用 WHERE 语句筛选出那些在成绩表中没有对应记录的学生，也就是没有选课的学生。

注意，这个查询假设每个学生的学号在学生表中是唯一的，而且每个学生在成绩表中的每门课都有一条记录。如果这些假设不成立，你可能需要修改查询以适应你的实际情况。