Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Swift Warmup : power of three
Search
Johnlin
December 13, 2016
Programming
89
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Swift Warmup : power of three
Johnlin
December 13, 2016
More Decks by Johnlin
See All by Johnlin
用 MLIR 實作 一個 Ruby IR (intermediate representation)
johnlinvc
0
300
Unearth Ruby builtin Gems 發掘 Ruby 的內建 Gems
johnlinvc
0
390
Ruby 型別檢查工具簡介
johnlinvc
0
620
Swift Actor 實作探索
johnlinvc
0
200
用 mruby 來寫跨平台工具
johnlinvc
0
120
Actor model 簡介
johnlinvc
0
240
一起玩 Helm 3
johnlinvc
1
160
為什麼 App 卡卡的
johnlinvc
2
1.3k
如何使用 byebug 來除錯 Ruby 程式
johnlinvc
0
260
Other Decks in Programming
See All in Programming
yield再入門 #phpcon
o0h
PRO
0
460
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
170
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
AIエージェントで 変わるAndroid開発環境
takahirom
2
680
自作OSでスライド発表する
uyuki234
1
3.8k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
260
AI がコードを書く時代における新卒エンジニアの仕事風景 (2026) / New Graduate Engineers in the Era of AI Coding (2026)
sushichan044
0
220
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
210
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
150
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
190
えっ!!コードを読まずに開発を!?
hananouchi
0
220
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
3
1.5k
Featured
See All Featured
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
320
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.4k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
260
Speed Design
sergeychernyshev
33
1.9k
How to Ace a Technical Interview
jacobian
281
24k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.1k
Visualization
eitanlees
152
17k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.5k
Transcript
Swift ఔࣜখ Power of Three John Lin
326. Power of Three • https://leetcode.com/problems/power-of-three/ • Given an integer,
write a function to determine if it is a power of three. • څ㟬ҰݸᏐɼሜҰݸവᏐᏗଞੋෆੋ 3 త࣍ํɻ
• Follow up: Could you do it without using any
loop / recursion? • Ճ: ՄҎෆ༻౸ ᅲ / ᬇ बղग़Ҋ䆩ʁ
• ༌ೖ: 81 • ༌ग़: true • 3*3*3*3 == 81
• ༌ೖ: 5566 • ༌ग़: false • 2 * 11
* 11 * 23 == 5566
ࠎՍ class Solution { func isPowerOfThree(_ n: Int) -> Bool
{ } }
ԋࢉ๏ 0 • ೳෆೳඃ 3 আɼՄҎతबআҎ 3ɻ • Ұ၏౸ෆೳඃ 3
আɼ҃ੋԙ 0 ҝࢭɼಹ ݸᏐࣈੋෆੋ 1
class Solution1 { func isPowerOfThree(_ n: Int) -> Bool {
var nn = n while(nn%3==0 && nn>0){ nn = nn / 3 } return nn==1 } }
class Solution1 { func isPowerOfThree(_ n: Int) -> Bool {
var nn = n while(nn%3==0 && nn>0){ nn = nn / 3 } return nn==1 } } ࣌ؒෳᯑ: O(log(n)) ۭؒෳᯑ: O(1) Runtime: 289 ms
ԋࢉ๏ 1 • ᏐࣈࡾਐҐɻ 5566 => “21122011” • 1 =>
“1”, 3 => “10”, 9 => “100”, 27 => “1000” • 3 త࣍ํҰఆ။Ṝᒬ 100000….. ɼबੋআྃ ։಄ੋ 1ɼଖଞੋ 0 • ᒾҰ༗ᔒ༗Ṝࠣಛੑबɻ
class Solution { func isPowerOfThree(_ n: Int) -> Bool {
let threeBased = String(n, radix:3) guard let head = threeBased.characters.first, head == "1" else { return false } guard threeBased.characters.count > 1 else { return true } let tail = String(threeBased.characters.dropFirst()) return Int(tail) == 0 } } ᔒ༗༻౸ᅲ
class Solution { func isPowerOfThree(_ n: Int) -> Bool {
let threeBased = String(n, radix:3) guard let head = threeBased.characters.first, head == "1" else { return false } guard threeBased.characters.count > 1 else { return true } let tail = String(threeBased.characters.dropFirst()) return Int(tail) == 0 } } ෆա䋯ಘຫ ࣌ؒෳᯑ: O(log(n)) ۭؒෳᯑ: O(log(n)) Runtime: 415 ms
ԋࢉ๏ 2 • ኺവᏐతఆٛ func isPowerOfThree(_ n: Int) -> Bool
ՄҎग़༌ೖᆴੋ༗্ݶతɼबੋ Int.max = 9223372036854775807 • ॴҎཁፙ౸্ݶ㚎࠷େత3త࣍ํɼ࠶ n ೳෆ ೳআଞɼबಓ n ੋෆੋ 3 త࣍ํྃɻ
class Solution { func isPowerOfThree(_ n: Int) -> Bool {
let ms = String(Int.max, radix:3) let max3 = "1" + repeatElement("0", count: ms.characters.count-1).joined() let max3i = Int(max3, radix:3)! //4052555153018976267 return n > 0 && max3i % n == 0 } }
class Solution { func isPowerOfThree(_ n: Int) -> Bool {
return n > 0 && 4052555153018976267 % n == 0 } } ࣌ؒෳᯑ: O(1) ۭؒෳᯑ: O(1) Runtime: 255 ms
Q&A