$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Double-Array Build
Search
jojonki
November 20, 2019
Technology
0
6.5k
Double-Array Build
jojonki
November 20, 2019
Tweet
Share
More Decks by jojonki
See All by jojonki
Network Simplex
jojonki
0
2.5k
Visualizing Receptive Field
jojonki
0
100
Backpropagation Cheet Sheet
jojonki
0
140
Minimum Cost
jojonki
0
6.4k
Double-Array Search
jojonki
0
6.6k
Other Decks in Technology
See All in Technology
バクラクのデータ基盤をBigQueryからSnowflakeへ移管した理由 / The reason for migrating Bakuraku data infrastructure from BigQuery to Snowflake
civitaspo
0
110
最強DB講義 #35 大規模言語モデルに基づく検索モデル
mpkato
1
110
"とにかくやってみる"で始めるAWS Security Hub
maimyyym
2
210
モバイルアプリ開発未経験者が プロダクト開発に携わるまでに取り組んだこと/nikkei-tech-talk-27-3
nikkei_engineer_recruiting
0
110
今はまだ小さい東京ガス内製開発チームが、これからもKubernetesと共に歩み続けるために
yussugi
3
430
RAMP2024
takeyukitamura
3
220
間違いだらけのポストモーテム - ホントに役立つレビューはこうだ!
jacopen
3
170
Windows Server 2025 Pay as you Go ライセンスを試す
murachiakira
0
180
LLMの気持ちになってRAGのことを考えてみよう
john_smith
0
180
KotlinユーザのためのJSpecify入門 / JSpecify 101 for Kotlin Devs
eller86
0
170
Bytebaseで実現する データベース管理の効率化
shogo452
1
110
MTDDC Meetup TOKYO 2024 運用フェーズに突入したウェブサイト。年々コスト増えていませんか?
kurashige
1
130
Featured
See All Featured
Navigating Team Friction
lara
183
14k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Side Projects
sachag
452
42k
Documentation Writing (for coders)
carmenintech
65
4.5k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Building an army of robots
kneath
302
43k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Transcript
0 0 0 0 0 0 0 0 0 0
0 0 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc ߏஙͯ͠ΈΑ͏ʂ 0 0 7
0 0 0 0 0 0 0 0 0 0
0 0 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “a#”Λొʂ base[1] >= 1ͷ݅Ͱɼ base[1]+code(a) == ະ༻index Λ୳͢ base0ະ༻Λද͢ͷͰ 1Ҏ্Ληοτ͢Δඞཁ͕͋Δ 0 0 7
1 0 0 0 0 0 0 0 0 0
0 0 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “a#”Λొʂ base[1] == 1ͷ࣌ɼbase[1]+code(a) == 2 index 2ະ༻ͳͷͰOK! 0 0 7
1 0 0 0 0 0 0 0 0 0
0 1 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “a#”Λొʂ index 1͕ભҠݩͳͷͰɼcheck[2]=1Ληοτ 0 0 7
1 0 0 0 0 0 0 0 0 0
0 1 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “a#”Λొʂ aͷ࣍ऴจࣈ#Λొ͢Δ base[2] >= 1ͷ݅Ͱɼbase[2]+code(#) == ະ༻index Λ୳͢ 0 0 7
1 0 0 0 0 3 0 0 0 0
0 1 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “a#”Λొʂ base[2] == 3ͷ࣌ɼbase[2]+code(#) == 3 index 3ະ༻ͳͷͰOK! 0 0 7
1 0 0 0 0 3 0 0 0 0
2 1 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “a#”Λొʂ Index 2͕ભҠݩͳͷͰɼcheck[3]=2Ληοτ 0 0 7
1 0 0 0 -1 3 0 0 0 0
2 1 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “a#”Λొʂ ऴจࣈΛొͨ͠ͷͰ baseΛ-1ʹͯ͠ऴྃ base0ະ༻index baseΛ-1ऴϊʔυΛҙຯ͢Δ 0 0 7
1 0 0 0 -1 3 0 0 0 0
2 1 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ base[1]طʹηοτࡁΈͳͷͰ Index (base[1]+code(b))͕ະ༻or check͕ਖ਼͍͔͠νΣοΫ 0 0 7
1 0 0 0 -1 3 0 0 0 0
2 1 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ check[3] != 1ͳͷͰବʂίϯϑϦΫτ͕ൃੜ… base[1]Γ͠ 0 0 7
1 0 0 0 -1 3 0 0 0 0
2 1 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ index 1Λʹ࣋ͭϊʔυΛͯ͢୳͢ index 2͕֘ 0 0 7
1 0 0 0 -1 3 0 0 0 0
2 1 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ 2 (index൪߸) - check[2] = 1 == code(a) ͭ·Γindex 2ɼindex 1͔ΒaΛొͨ͠ભҠ 0 0 7
0 0 0 0 -1 3 0 0 0 0
2 1 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ ΑͬͯɼaͱbΛindex 1͔Βొ͢Δඞཁ͕͋Δ base[1]Λ·ͣ0Ϧηοτʂ aͷݩભҠઌޙͰ͏ͷͰ͓֮͑ͯ͘ 0 0 7
? 0 0 0 -1 3 0 0 0 0
2 1 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ base[1] >= 1ͷ݅Ͱɼbase[1]+code(a) ͱbase[1]+code(b)͕ ͍ͣΕະ༻ͳindexͱͳΔΛ୳͢ 0 0
3 0 0 0 -1 3 0 1 0 1
2 1 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ base[1] = 3ͱ͢Δͱɼa, b͍ͣΕొͰ͖ͦ͏ͩ bͷભҠ aͷભҠ 0 0 7
3 0 0 3 -1 3 0 1 0 1
2 1 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ a͕͚มΘͬͨͷͰɼݩભҠઌ͔ΒbaseΛίϐʔ aͷݩભҠઌ aͷ৽ભҠઌ 0 0 7
3 0 0 3 -1 3 0 1 0 1
2 1 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ aͷݩભҠઌΛʹ࣋ͭϊʔυΛͯ͢୳͢ index 3͕֘ aͷݩભҠઌ aͷ৽ભҠઌ 0 0 7
3 0 0 3 -1 3 0 1 0 1
4 1 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ aindex 4ʹҠͬͨͷͰɼ ϊʔυͷॴʢcheckʣΛ4ʹߋ৽ aͷݩભҠઌ aͷ৽ભҠઌ 0 0 7
3 0 0 3 -1 0 0 1 0 1
4 0 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ aͷݩભҠઌͷbaseͱcheck ৽ભҠઌʹҠߦͰ͖ͨͷͰϦηοτ ͜ΕͰίϯϑϦΫτΛղফͰ͖ͨ aͷݩભҠઌ aͷ৽ભҠઌ 0 0 7
3 0 0 3 -1 0 0 1 0 1
4 0 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ ొ࡞ۀʹΔ b·ͰొͰ͖͍ͯͨͷͰcΛొ bͷભҠઌ 0 0 7
3 0 0 3 -1 0 0 1 0 1
4 0 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ base[5] >= 1ͷ݅Ͱɼ base[5]+code(c) == ະ༻index Λ୳͢ 0 0 7
3 3 0 3 -1 0 0 1 0 1
4 0 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ base[5] == 3ͷ࣌ɼbase[5]+code(c) == 6 index 6ະ༻ͳͷͰOK! 0 0 7
3 3 0 3 -1 0 0 1 5 1
4 0 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ index 5͕ભҠݩͳͷͰɼcheck[6]=7Ληοτ 0 0 7
3 3 0 3 -1 0 0 1 5 1
4 0 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ base[6] >= 1ͷ݅Ͱɼ base[6]+code(#) == ະ༻index Λ୳͢ 0 0 7
3 3 7 3 -1 0 0 1 5 1
4 0 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ base[6] == 7ͷ࣌ɼbase[6]+code(#) == 6 index 6ະ༻ͳͷͰOK! 0 0 7
6 3 3 7 3 -1 0 0 1 5
1 4 0 base check index 1 2 5 4 6 3 จࣈίʔυ #: 0 a: 1 b: 2 c: 3 ޠኮࣙॻ a bc “bc#”Λొʂ check[7]ʹભҠݩindex 6Ληοτ ऴจࣈͳͷͰbase[7]ʹ-1Ληοτͯ͠ऴྃ -1 7