当前位置:网站首页>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 .
边栏推荐
- JVM memory model concept
- Hackmyvm Target Series (3) - vues
- Strengthen basic learning records
- Library management system
- 强化学习基础记录
- A complete collection of papers on text recognition
- Hackmyvm target series (4) -vulny
- 内网渗透之内网信息收集(一)
- 7-11 mechanic mustadio (PTA program design)
- Renforcer les dossiers de base de l'apprentissage
猜你喜欢
captcha-killer验证码识别插件
DVWA (5th week)
记一次edu,SQL注入实战
Mixlab unbounded community white paper officially released
[VMware abnormal problems] problem analysis & Solutions
Record an API interface SQL injection practice
攻防世界MISC练习区(gif 掀桌子 ext3 )
Build domain environment (win)
Hackmyvm Target Series (3) - vues
JDBC read this article is enough
随机推荐
Yugu p1012 spelling +p1019 word Solitaire (string)
Detailed explanation of network foundation routing
HackMyvm靶机系列(2)-warrior
Internet Management (Information Collection)
What language should I learn from zero foundation. Suggestions
Intranet information collection of Intranet penetration (2)
记一次edu,SQL注入实战
Mixlab unbounded community white paper officially released
图书管理系统
SQL注入
This article explains in detail how mockmvc is used in practical work
Experiment 4 array
7-4 hash table search (PTA program design)
7-8 7104 Joseph problem (PTA program design)
Captcha killer verification code identification plug-in
Sword finger offer 23 - print binary tree from top to bottom
The difference between layer 3 switch and router
Strengthen basic learning records
On the idea of vulnerability discovery
Intranet information collection of Intranet penetration (5)