核心内容摘要
DeerFlow Python执行沙箱:安全运行代码片段的机制解析
目录标题
题目1
题目2
三、
总结
题目
有一个类 Pair含有两个成员 a 和 b如果两个 Pair 对象的 a 和 b 都相等则认为这两个对象相等。
Datapublic class Pair {Integer a;Integer b;}有两个 List, List l1, List l2, 写一个函数求这两个 List 的交集即返回这两个List 当中相同的元素放在一个集合中返回。
注意请尽量写准确清晰按照可执行的 Java代码写我的答案publicsetPairfn(ListPairl1,ListPairl
{setPairresultSetnewHashSet();l
stream().map(item{for(Pairinner:l
{//Integer转换比较可能有误if(inner.getA().equals(item.getA())iner.getB().equals(item.getB()){resultSet.add(inner);}}})returnresultSet;}AI修正后代码importjava.util.*;importjava.util.stream.Collectors;publicSetPairfn(ListPairl1,ListPairl
{SetPairresultSetnewHashSet();for(Pairp1:l
{for(Pairp2:l
{if(p
getA().equals(p
getA())p
getB().equals(p
getB())){resultSet.add(p
;// 可以添加p1或p2因为它们相等break;// 找到后跳出内层循环}}}returnresultSet;}标准答案(把我的原来的方法效率是O(n²)使用HashSet可以优化到O(n)。
)使用Stream API的简洁写法publicSetPairfn(ListPairl1,ListPairl
{SetPairset1newHashSet(l
;returnl
stream().filter(set1::contains).collect(Collectors.toSet());}注意要使HashSet.contains()正常工作必须在Pair类中正确重写equals()和hashCode()方法DatapublicclassPair{Integera;Integerb;Overridepublicbooleanequals(Objecto){if(thiso)returntrue;if(onull||getClass()!o.getClass())returnfalse;Pairpair(Pair)o;returnObjects.equals(a,pair.a)Objects.equals(b,pair.b);}OverridepublicinthashCode(){returnObjects.hash(a,b);}}
题目2有如下数据库表是学生的各科成绩表格学号 姓名 科目 分数1 张三 语文 801 张三 数学 901 张三 英语 702 李四 语文 602 李四 数学 802 李四 英语 903 王五 语文 703 王五 数学 60 … … … … 问题
撰写建表 SQL 语句建立学生成绩表
撰写查询 SQL 语句输出所有科目平均分大于 80 分的学生
撰写查询 SQL 语句输出语文成绩比数学成绩好的学生我的答案//要加判断或者覆盖create table table{column idvarchar2(
not NULL primary key,Columnnamevarchar2(
defaultnull,Columnsubjectvarchar2(
defaultnull,Columnscorenumber(1000,
defaultnull,}Selectname from(selectsum(score)/3total,t
name from table t1 where subject‘语文’ or subject‘数学’or subject‘英语’ groupBy t
name)t2 where t
total80;Selectname from((select t
score,t
name from table where subject‘语文’)t1 left join(select t
score,t
name from table where subject‘数学’)t
t3 where t
scoret
score;错误分析建表语句答案CREATE TABLE student_score(idVARCHAR2(
NOT NULL, name VARCHAR2(
, subject VARCHAR2(
, score NUMBER(5,
, PRIMARY KEY(id, subject));
输出所有科目平均分大于80分的学生(竟然忘了还有 having avg )SELECT name FROM student_score GROUP BY name HAVING AVG(score)80;
输出语文成绩比数学成绩好的学生SELECT c.name FROM student_score c JOIN student_score m ON c.namem.name WHERE c.subject语文AND m.subject数学AND c.scorem.score;SELECT c.name FROM student_score c LEFT JOIN student_score m ON c.namem.name AND m.subject数学WHERE c.subject语文AND(c.scorem.score OR m.score IS NULL);
三、