第一题
https://leetcode.cn/problems/game-play-analysis-i/submissions/632977238/
代码
# Write your MySQL query statement below
SELECT t1.player_id, t1.event_date AS first_login
FROM Activity t1
JOIN (
SELECT player_id, MIN(event_date) AS min_date
FROM Activity
GROUP BY player_id
) AS t2 ON t1.player_id = t2.player_id AND t1.event_date = t2.min_date;
第二题
https://leetcode.cn/problems/summary-ranges/?envType=problem-list-v2&envId=array
代码
class Solution {
public List<String> summaryRanges(int[] nums) {
int cnt = 0;
List<String> list = new ArrayList<>();
StringBuilder builder = new StringBuilder();
for(int i = 0; i < nums.length; i++){
if(cnt == 0){
builder.append(nums[i]);
cnt++;
} else {
if(nums[i] - nums[i-1] != 1){
if(cnt != 1){
builder.append("->");
builder.append(nums[i-1]);
}
list.add(builder.toString());
cnt = 0;
builder.setLength(0);
i--;
} else {
cnt++;
}
}
}
if(cnt > 0){
if(cnt > 1){
builder.append("->");
builder.append(nums[nums.length-1]);
}
list.add(builder.toString());
}
return list;
}
}
第三题
代码
class Solution {
public static final int[] table = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26};
public int getLucky(String s, int k) {
StringBuilder builder = new StringBuilder();
for(int i = 0; i < s.length(); i++){
builder.append(table[s.charAt(i) - 'a']);
}
int sum = 0;
while(k-- != 0){
sum = 0;
for(int i = 0; i < builder.length(); i++){
sum += builder.charAt(i) - '0';
}
builder.setLength(0); // 逻辑清空
builder.append(sum);
}
return sum;
}
}