SQL50+Hot100系列(11.6)
一 SQL
1 (1757可回收且低脂的产品
题目描述

样例:

思路分析:
这就是简单的条件判断
代码展示:
# Write your MySQL query statement below
select product_id from Products where low_fats = 'Y' and recyclable = 'Y';2 (584寻找用户推荐人)
题目描述

样例:

思路分析:
简单的条件判断,唯一的注意点可能就是一个 is null的语法使用
代码展示:
# Write your MySQL query statement below
select name from Customer where referee_id != 2 or referee_id is null;二 算法题
1 两数之和

思路分析:
1 哈希表的使用
标准的空间换时间
1 初始化:
创建哈希表,键存储数组元素值,值存储对应索引
2 遍历数组:
对每个元素计算其与目标值的差值
next3查找判断:
如果
next存在于哈希表中,说明找到匹配对,直接返回两数索引如果不存在,将当前元素和索引存入哈希表备用
4提前返回:
找到解立即返回,无需继续遍历
class Solution {public int[] twoSum(int[] nums, int target) {int len =nums.length,next;Map<Integer,Integer> map = new HashMap<>();for(int i=0;i<=len-1;i++){next= target-nums[i];if(map.containsKey(next)){return new int[]{i,map.get(next)};}map.put(nums[i],i);}return new int[0];}
}2 两层循环
直接使用双重循环去进行一个判断,可能与暴力相比,这种方法也就主要是对重复出现的那些情况的一个省略。
class Solution {public int[] twoSum(int[] nums, int target) {int len =nums.length;for(int i=0;i<=len-1;i++){for (int j=i+1;j<=len-1;j++){if(nums[i]+nums[j]==target){return new int[]{i,j};}}}return new int[0];}
}