ジャンプゲーム#
非負の整数配列 nums が与えられ、最初に配列の最初のインデックスにいます。
配列の各要素は、その位置でジャンプできる最大の長さを表します。
最後のインデックスに到達できるかどうかを判断します。
例 1:
入力:nums = [2,3,1,1,4]
出力:true
説明:最初に 1 ステップジャンプして、インデックス 0 からインデックス 1 に到達し、次にインデックス 1 から 3 ステップジャンプして最後のインデックスに到達できます。
例 2:
入力:nums = [3,2,1,0,4]
出力:false
説明:どのようにしても、インデックス 3 には到達します。しかし、そのインデックスの最大ジャンプ長は 0 ですので、最後のインデックスに到達することはできません。
- 実行はできますが、提出はできません!!!
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 点以上の学生の学生番号と平均成績を取得できます:
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 点以上の学生をフィルタリングします。
注意:このクエリは、学生テーブルの学生番号が一意であり、各学生が少なくとも 1 つの科目の成績を持っているという仮定のもとで動作することを前提としています。これらの仮定が成立しない場合は、クエリを修正して実際の状況に合わせる必要があります。#
以下のようなデータベースのテーブル構造があるとします:
- 学生テーブル(Students):学生番号(StudentID)、名前(Name)、学校(School)、その他
- 成績テーブル(Scores):学生番号(StudentID)、科目番号(CourseID)、成績(Score)
以下の SQL クエリを使用して、すべての学生の学校、名前、選択した科目数、総成績を取得できます:
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 を使用しているため、少なくとも 1 つの科目を選択していない学生も結果に表示されます(科目数と総成績は NULL と表示されます)。少なくとも 1 つの科目を選択した学生のみを表示したい場合は、LEFT JOIN を JOIN に変更することができます。#
以下のようなデータベースのテーブル構造があるとします:
- 成績テーブル(Scores):学生番号(StudentID)、科目番号(CourseID)、成績(Score)
以下の SQL クエリを使用して、科目番号が 2 の総成績を取得できます:
SELECT SUM(Score) AS TotalScore
FROM Scores
WHERE CourseID = 2;
このクエリはまず WHERE 文を使用して科目番号が 2 の成績をフィルタリングし、その後 SUM 関数を使用してこれらの成績の合計を計算します。
注意:このクエリは、成績テーブルに科目番号が 1 つのフィールドとして存在することを前提としています。この前提が成立しない場合、クエリを修正して実際の状況に合わせる必要があります。#
以下のようなデータベースのテーブル構造があるとします:
- 学生テーブル(Students):学生番号(StudentID)、名前(Name)、その他
- 成績テーブル(Scores):学生番号(StudentID)、科目番号(CourseID)、成績(Score)
以下の SQL クエリを使用して、選択されていない科目の学生の学生番号と名前を取得できます:
SELECT Students.StudentID, Students.Name
FROM Students
LEFT JOIN Scores ON Students.StudentID = Scores.StudentID
WHERE Scores.StudentID IS NULL;
このクエリはまず LEFT JOIN 操作を使用して学生テーブルと成績テーブルを結合します。その後、WHERE 文を使用して成績テーブルに対応するレコードが存在しない学生、つまり選択されていない科目の学生をフィルタリングします。
注意:このクエリは、学生テーブルの学生番号が一意であり、成績テーブルの各学生がすべての科目についてレコードを持っているという前提のもとで動作することを前提としています。これらの前提が成立しない場合、クエリを修正して実際の状況に合わせる必要があります。