当前位置:网站首页>Lintcode logo queries the two nearest saplings
Lintcode logo queries the two nearest saplings
2022-07-06 14:23:00 【Lan Zhou Qianfan】
The requirement of the question is the distance between the nearest two trees in the query table . And rename the result (shortest_distance)
Answer 1 :( Adopt aggregate function and self connection )
SELECT MIN(ABS(a.distance - b.distance)) AS shortest_distance
FROM sapling_distances AS a
INNER JOIN sapling_distances b
ON a.id != b.id;
This is a very simple solution , Fields are not complicated .
Attention is paid to small details . Distance , The preconditions for finding the absolute value and the added minimum value are adopted . Then there is self join query . The condition of self connection query is the combination of both id inequality . If they are the same, then the query distance is meaningless . If id The same is comparing itself . What is the analogy between oneself and oneself ?
!= You can also use <> Instead of . It means the same thing
Explanation 2 :( Adopt nested query thinking )
SELECT MIN(distance_diff) AS shortest_distance FROM (
SELECT abs(b.distance - a.distance) AS distance_diff FROM sapling_distances a, sapling_distances b
WHERE a.id <> b.id
) cc
HAVING shortest_distance is not null;
It adopts the thinking of nested query , It's also very easy to understand . The outer layer minimizes the required result , The inner layer calculates the absolute value of the query distance . The processing of the table in memory is to name the table twice , Make it a different watch , Then attach conditions . The last thing to note is cc This is the name of the sub query table , If not , Will report a mistake , This is the grammatical requirement .
Answer 3 :( Another mode of thinking , It's nothing special )
select min(a.distance - b.distance) shortest_distance
from sapling_distances a
join sapling_distances b on a.distance > b.distance
having shortest_distance is not null;
One limitation a.distance>b.distance This replaces abs() Aggregate functions , In this way, you can also get normal results .
Solution 4 :( Superfluous solution , Simple problems complicate )
select min(s2.distance-s1.distance) shortest_distance from
(select distance,@rownum1:=@rownum1+1 r1
from sapling_distances,(select @rownum1:=0) ra
order by distance) s1,
(select distance,@rownum2:=@rownum2+1 r2
from sapling_distances,(select @rownum2:=0) rb
order by distance) s2
where s1.r1 = s2.r2-1 having shortest_distance is not null;
Don't explain , Because I won't . Solution from netizens . I really hate this solution . Simple problems complicate , Don't do it . ok ! I haven't used this method yet , When you learn it, you can add .
边栏推荐
- 《统计学》第八版贾俊平第十四章指数知识点总结及课后习题答案
- Only 40% of the articles are original? Here comes the modification method
- Uibutton status exploration and customization
- 7-8 7104 Joseph problem (PTA program design)
- 网络基础之路由详解
- 内网渗透之内网信息收集(四)
- Experiment five categories and objects
- 《统计学》第八版贾俊平第十三章时间序列分析和预测知识点总结及课后习题答案
- Force deduction 152 question multiplier maximum subarray
- 【MySQL-表结构与完整性约束的修改(ALTER)】
猜你喜欢
[VMware abnormal problems] problem analysis & Solutions
Strengthen basic learning records
《统计学》第八版贾俊平第十二章多元线性回归知识点总结及课后习题答案
《英特尔 oneAPI—打开异构新纪元》
强化学习基础记录
小程序web抓包-fiddler
How to understand the difference between technical thinking and business thinking in Bi?
Xray and Burp linked Mining
Interpretation of iterator related "itertools" module usage
Only 40% of the articles are original? Here comes the modification method
随机推荐
The difference between layer 3 switch and router
Mathematical modeling idea of 2022 central China Cup
Attach the simplified sample database to the SQLSERVER database instance
记一次api接口SQL注入实战
Intel oneapi - opening a new era of heterogeneity
JVM memory model concept
HackMyvm靶机系列(7)-Tron
sqqyw(淡然点图标系统)漏洞复现和74cms漏洞复现
《统计学》第八版贾俊平第十章方差分析知识点总结及课后习题答案
Which is more advantageous in short-term or long-term spot gold investment?
Experiment 8 exception handling
Markdown font color editing teaching
Harmonyos application development -- address book management system telmanagesys based on listcontainer [phonebook][api v6]
Intensive literature reading series (I): Courier routing and assignment for food delivery service using reinforcement learning
Strengthen basic learning records
2022华中杯数学建模思路
New version of postman flows [introductory teaching chapter 01 send request]
[data processing of numpy and pytoch]
Intranet information collection of Intranet penetration (2)
Chain team implementation (C language)