↓快轉到主要內容
  1. LeetCode/

LeetCode 595: Big Countries

·1 分鐘· ·
LeetCode Easy Database
Wei Yi Chung
作者
Wei Yi Chung
Working at the contributing of open source, distributed systems, and data engineering.
目錄

基本資料
#

難易度: easy 第一次嘗試:2021-10-10

  • 提交紀錄:Accepted ×3

解題思路
#

兩個條件任一成立就是大國,用 OR 連接(SQL 模板一)。題目說的是至少,用 >=。

我的嘗試
#

三次都 AC:OR 寫法、換個順序的 OR,以及兩個查詢 UNION。當時用的是 >,題目是「至少」,邊界應該用 >=,剛好測資沒有卡到。

正確解法
#

SELECT name, population, area
FROM World
WHERE area >= 3000000 OR population >= 25000000;

複雜度
#

掃一次資料表,O(n)。

要特別避免的錯誤
#

  • 「至少」是 >=。
  • 也可以用兩個查詢 UNION,在有索引時有機會比較快,但一般用 OR 就好。

面試口說整理
#

我用 WHERE 過濾面積至少三百萬或人口至少兩千五百萬的國家,回傳名稱、人口和面積。

相關文章

LeetCode 197: Rising Temperature
·1 分鐘
LeetCode Easy Database
LeetCode 197 解題筆記:Weather self join,條件是兩天的日期差 1 天而且今天比較熱;日期要用 DATEDIFF 比,不能比 id
LeetCode 596: Classes With at Least 5 Students
·1 分鐘
LeetCode Easy Database
LeetCode 596 解題筆記:按 class 分組,HAVING COUNT(DISTINCT student) >= 5;舊版測資有重複的列,要數不同的學生
LeetCode 620: Not Boring Movies
·1 分鐘
LeetCode Easy Database
LeetCode 620 解題筆記:id 是奇數而且 description 不是 boring,按 rating 由高到低排序
LeetCode 175: Combine Two Tables
·1 分鐘
LeetCode Easy Database
LeetCode 175 解題筆記:沒有地址的人也要出現,所以用 LEFT JOIN,對不到的 city、state 會是 NULL
LeetCode 181: Employees Earning More Than Their Managers
·1 分鐘
LeetCode Easy Database
LeetCode 181 解題筆記:Employee 跟自己 self join,用 managerId = id 把員工和主管接起來,再比較薪水
LeetCode 182: Duplicate Emails
·1 分鐘
LeetCode Easy Database
LeetCode 182 解題筆記:按 email 分組,HAVING COUNT(*) > 1 留下出現超過一次的