Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Swift Warmup : power of three
Search
Johnlin
December 13, 2016
Programming
97
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
390
Unearth Ruby builtin Gems 發掘 Ruby 的內建 Gems
johnlinvc
0
490
Ruby 型別檢查工具簡介
johnlinvc
0
700
Swift Actor 實作探索
johnlinvc
0
230
用 mruby 來寫跨平台工具
johnlinvc
0
150
Actor model 簡介
johnlinvc
0
280
一起玩 Helm 3
johnlinvc
1
200
為什麼 App 卡卡的
johnlinvc
2
1.4k
如何使用 byebug 來除錯 Ruby 程式
johnlinvc
0
300
Other Decks in Programming
See All in Programming
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
410
パスワード再設定メールのURLについて知っておこう
uyuki234
0
160
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
270
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
150
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
1
420
SREの越境 / SRE Collaboration
y0hgi
2
310
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
120
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
1k
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
290
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
810
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
4
3.4k
Featured
See All Featured
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
870
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Automating Front-end Workflow
addyosmani
1369
210k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
360
Ruling the World: When Life Gets Gamed
codingconduct
0
400
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Statistics for Hackers
jakevdp
799
230k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
550
Typedesign – Prime Four
hannesfritz
42
3.2k
Prompt Engineering for Job Search
mfonobong
0
510
Ethics towards AI in product and experience design
skipperchong
2
430
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