Skip to content

Commit 0747e28

Browse files
Deployed a265893 with MkDocs version: 1.6.1
1 parent 4b43cef commit 0747e28

File tree

3 files changed

+226
-21
lines changed

3 files changed

+226
-21
lines changed

coding-patterns-for-interviews/index.html

Lines changed: 224 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -112,19 +112,51 @@
112112
</li>
113113
<li class="toctree-l4"><a class="reference internal" href="#implementation-equipment-load-distribution">Implementation: Equipment Load Distribution</a>
114114
</li>
115-
<li class="toctree-l4"><a class="reference internal" href="#mission-applications">Mission Applications</a>
116-
</li>
117115
<li class="toctree-l4"><a class="reference internal" href="#combat-tips">Combat Tips</a>
118116
</li>
119117
</ul>
120118
</li>
119+
<li class="toctree-l3"><a class="reference internal" href="#sliding-window-pattern">Sliding Window Pattern</a>
120+
<ul>
121+
<li class="toctree-l4"><a class="reference internal" href="#tactical-overview_1">Tactical Overview</a>
122+
</li>
123+
<li class="toctree-l4"><a class="reference internal" href="#battle-plan_1">Battle Plan</a>
124+
</li>
125+
<li class="toctree-l4"><a class="reference internal" href="#implementation-unit-performance-tracking">Implementation: Unit Performance Tracking</a>
126+
</li>
127+
<li class="toctree-l4"><a class="reference internal" href="#combat-tips_1">Combat Tips</a>
128+
</li>
129+
</ul>
130+
</li>
131+
<li class="toctree-l3"><a class="reference internal" href="#fast-slow-pointers-pattern">Fast &amp; Slow Pointers Pattern</a>
132+
<ul>
133+
<li class="toctree-l4"><a class="reference internal" href="#tactical-overview_2">Tactical Overview</a>
134+
</li>
135+
<li class="toctree-l4"><a class="reference internal" href="#battle-plan_2">Battle Plan</a>
136+
</li>
137+
<li class="toctree-l4"><a class="reference internal" href="#implementation-patrol-route-cycle-detection">Implementation: Patrol Route Cycle Detection</a>
138+
</li>
139+
<li class="toctree-l4"><a class="reference internal" href="#combat-tips_2">Combat Tips</a>
140+
</li>
141+
</ul>
142+
</li>
143+
<li class="toctree-l3"><a class="reference internal" href="#binary-search-pattern">Binary Search Pattern</a>
144+
<ul>
145+
<li class="toctree-l4"><a class="reference internal" href="#tactical-overview_3">Tactical Overview</a>
146+
</li>
147+
<li class="toctree-l4"><a class="reference internal" href="#battle-plan_3">Battle Plan</a>
148+
</li>
149+
<li class="toctree-l4"><a class="reference internal" href="#implementation-personnel-location-in-formation">Implementation: Personnel Location in Formation</a>
150+
</li>
151+
<li class="toctree-l4"><a class="reference internal" href="#combat-tips_3">Combat Tips</a>
152+
</li>
153+
</ul>
154+
</li>
121155
<li class="toctree-l3"><a class="reference internal" href="#after-action-review">After Action Review</a>
122156
<ul>
123157
<li class="toctree-l4"><a class="reference internal" href="#key-tactical-points">Key Tactical Points</a>
124158
</li>
125159
<li class="toctree-l4"><a class="reference internal" href="#field-notes">Field Notes</a>
126-
</li>
127-
<li class="toctree-l4"><a class="reference internal" href="#training-resources">Training Resources</a>
128160
</li>
129161
</ul>
130162
</li>
@@ -195,7 +227,6 @@ <h2 id="table-of-contents">Table of Contents</h2>
195227
<li><a href="#mission-briefing">Mission Briefing</a></li>
196228
<li><a href="#two-pointers-pattern">Two Pointers Pattern</a></li>
197229
<li><a href="#sliding-window-pattern">Sliding Window Pattern</a></li>
198-
<li><a href="#fast--slow-pointers-pattern">Fast &amp; Slow Pointers Pattern</a></li>
199230
<li><a href="#binary-search-pattern">Binary Search Pattern</a></li>
200231
<li><a href="#after-action-review">After Action Review</a></li>
201232
</ul>
@@ -261,19 +292,200 @@ <h3 id="implementation-equipment-load-distribution">Implementation: Equipment Lo
261292
pairs = find_equipment_pairs(equipment_weights, target)
262293
print(f&quot;SITREP: Equipment pairs matching {target}lbs: {pairs}&quot;)
263294
</code></pre>
264-
<h3 id="mission-applications">Mission Applications</h3>
265-
<ol>
266-
<li>Finding pairs in sorted arrays (Two Sum)</li>
267-
<li>Container optimization (Water Container)</li>
268-
<li>Removing duplicates from sorted arrays</li>
269-
</ol>
270295
<h3 id="combat-tips">Combat Tips</h3>
271296
<ul>
272297
<li>Always sort when dealing with pair finding</li>
273298
<li>Consider edge cases like empty arrays</li>
274299
<li>Watch for pointer bounds</li>
275300
</ul>
276-
<p>[Additional sections follow same enhanced format...]</p>
301+
<hr />
302+
<h2 id="sliding-window-pattern">Sliding Window Pattern</h2>
303+
<h3 id="tactical-overview_1">Tactical Overview</h3>
304+
<p><strong>Mission Type:</strong> Surveillance and Monitoring Operations</p>
305+
<p><strong>Military Context:</strong> Analogous to maintaining a surveillance window on an area of operation. Like how a unit maintains constant observation while moving through terrain, the sliding window keeps track of a specific subset of data while moving through the array.</p>
306+
<h3 id="battle-plan_1">Battle Plan</h3>
307+
<ol>
308+
<li>Establish initial observation window</li>
309+
<li>Monitor and record metrics within window</li>
310+
<li>Advance window systematically</li>
311+
<li>Maintain optimal window size for mission requirements</li>
312+
</ol>
313+
<h3 id="implementation-unit-performance-tracking">Implementation: Unit Performance Tracking</h3>
314+
<pre><code class="language-python">def analyze_performance_window(performance_scores, days):
315+
&quot;&quot;&quot;
316+
Mission: Track maximum average performance over consecutive days.
317+
318+
Tactical Application:
319+
- Monitoring unit readiness
320+
- Tracking squad performance trends
321+
- Identifying optimal training periods
322+
- Measuring combat effectiveness
323+
324+
Operation Parameters:
325+
performance_scores (list): Daily performance metrics
326+
days (int): Window size to analyze
327+
328+
Mission Outcome:
329+
float: Maximum average performance for any window
330+
&quot;&quot;&quot;
331+
if not performance_scores or days &lt;= 0:
332+
return 0
333+
334+
# Establish initial observation window
335+
current_sum = sum(performance_scores[:days])
336+
max_sum = current_sum
337+
338+
# Advance observation window
339+
for i in range(days, len(performance_scores)):
340+
# Shift window forward
341+
current_sum = current_sum - performance_scores[i - days] + performance_scores[i]
342+
max_sum = max(max_sum, current_sum)
343+
344+
return max_sum / days
345+
346+
# Field Operations Test
347+
daily_scores = [85, 90, 92, 88, 86, 95, 92]
348+
window_size = 3
349+
max_avg = analyze_performance_window(daily_scores, window_size)
350+
print(f&quot;SITREP: Peak performance average over {window_size} days: {max_avg}&quot;)
351+
</code></pre>
352+
<h3 id="combat-tips_1">Combat Tips</h3>
353+
<ul>
354+
<li>Initialize window bounds correctly</li>
355+
<li>Update window contents efficiently</li>
356+
<li>Track maximum/minimum values as needed</li>
357+
</ul>
358+
<hr />
359+
<h2 id="fast-slow-pointers-pattern">Fast &amp; Slow Pointers Pattern</h2>
360+
<h3 id="tactical-overview_2">Tactical Overview</h3>
361+
<p><strong>Mission Type:</strong> Reconnaissance Operations</p>
362+
<p><strong>Military Context:</strong> Similar to scout team and main element movement. The scout team (fast pointer) moves ahead at twice the pace while maintaining coordination with the main element (slow pointer).</p>
363+
<h3 id="battle-plan_2">Battle Plan</h3>
364+
<ol>
365+
<li>Deploy scout element (fast pointer)</li>
366+
<li>Coordinate with main element (slow pointer)</li>
367+
<li>Maintain communication between elements</li>
368+
<li>Identify patterns or cycles in movement</li>
369+
</ol>
370+
<h3 id="implementation-patrol-route-cycle-detection">Implementation: Patrol Route Cycle Detection</h3>
371+
<pre><code class="language-python">class PatrolPoint:
372+
&quot;&quot;&quot;
373+
Tactical waypoint in patrol route
374+
&quot;&quot;&quot;
375+
def __init__(self, location, next=None):
376+
self.location = location
377+
self.next = next
378+
379+
def detect_circular_patrol(patrol_route):
380+
&quot;&quot;&quot;
381+
Mission: Detect if a patrol route circles back to a previous point.
382+
383+
Tactical Application:
384+
- Route reconnaissance
385+
- Patrol pattern analysis
386+
- Identifying redundant coverage
387+
- Ensuring efficient area coverage
388+
389+
Operation Parameters:
390+
patrol_route: Starting point of patrol route
391+
392+
Mission Outcome:
393+
bool: True if route contains a cycle
394+
&quot;&quot;&quot;
395+
if not patrol_route:
396+
return False
397+
398+
# Scout team (fast) and main element (slow)
399+
main_element = patrol_route
400+
scout_team = patrol_route.next
401+
402+
while scout_team and scout_team.next:
403+
if main_element == scout_team:
404+
return True # Circular pattern detected
405+
main_element = main_element.next
406+
scout_team = scout_team.next.next
407+
408+
return False
409+
410+
# Field Operations Test
411+
# Create patrol route: Alpha -&gt; Bravo -&gt; Charlie -&gt; Delta -&gt; Bravo
412+
point_a = PatrolPoint(&quot;Alpha&quot;)
413+
point_b = PatrolPoint(&quot;Bravo&quot;)
414+
point_c = PatrolPoint(&quot;Charlie&quot;)
415+
point_d = PatrolPoint(&quot;Delta&quot;)
416+
417+
point_a.next = point_b
418+
point_b.next = point_c
419+
point_c.next = point_d
420+
point_d.next = point_b # Creates cycle
421+
422+
is_circular = detect_circular_patrol(point_a)
423+
print(f&quot;SITREP: Patrol route contains circular pattern: {is_circular}&quot;)
424+
</code></pre>
425+
<h3 id="combat-tips_2">Combat Tips</h3>
426+
<ul>
427+
<li>Watch for null/none values</li>
428+
<li>Handle edge cases carefully</li>
429+
<li>Maintain proper pointer speeds</li>
430+
</ul>
431+
<hr />
432+
<h2 id="binary-search-pattern">Binary Search Pattern</h2>
433+
<h3 id="tactical-overview_3">Tactical Overview</h3>
434+
<p><strong>Mission Type:</strong> Target Acquisition Operations</p>
435+
<p><strong>Military Context:</strong> Similar to bracketing procedures in artillery fire missions. You systematically narrow down your target area by adjusting between known boundaries until you achieve target acquisition.</p>
436+
<h3 id="battle-plan_3">Battle Plan</h3>
437+
<ol>
438+
<li>Establish search boundaries</li>
439+
<li>Calculate mid-point</li>
440+
<li>Adjust search sector based on target position</li>
441+
<li>Repeat until target acquired or sector cleared</li>
442+
</ol>
443+
<h3 id="implementation-personnel-location-in-formation">Implementation: Personnel Location in Formation</h3>
444+
<pre><code class="language-python">def locate_in_formation(positions, target_id):
445+
&quot;&quot;&quot;
446+
Mission: Efficiently locate a service member's position in formation.
447+
448+
Tactical Application:
449+
- Personnel accountability
450+
- Formation management
451+
- Quick reaction force assignments
452+
- Rapid personnel location
453+
454+
Operation Parameters:
455+
positions (list): Sorted list of position IDs
456+
target_id (int): ID to locate
457+
458+
Mission Outcome:
459+
int: Index of target position or -1 if not found
460+
&quot;&quot;&quot;
461+
left = 0 # Left boundary
462+
right = len(positions) - 1 # Right boundary
463+
464+
while left &lt;= right:
465+
mid = (left + right) // 2 # Center of current sector
466+
467+
if positions[mid] == target_id:
468+
return mid # Target acquired
469+
elif positions[mid] &lt; target_id:
470+
left = mid + 1 # Adjust sector right
471+
else:
472+
right = mid - 1 # Adjust sector left
473+
474+
return -1 # Target not found
475+
476+
# Field Operations Test
477+
formation_positions = [2, 4, 6, 8, 10, 12, 14, 16]
478+
target = 10
479+
position = locate_in_formation(formation_positions, target)
480+
print(f&quot;SITREP: Service member {target} located at position: {position}&quot;)
481+
</code></pre>
482+
<h3 id="combat-tips_3">Combat Tips</h3>
483+
<ul>
484+
<li>Ensure array is sorted before search</li>
485+
<li>Handle boundary conditions</li>
486+
<li>Watch for integer overflow in midpoint calculation</li>
487+
</ul>
488+
<hr />
277489
<h2 id="after-action-review">After Action Review</h2>
278490
<h3 id="key-tactical-points">Key Tactical Points</h3>
279491
<ol>
@@ -287,13 +499,6 @@ <h3 id="field-notes">Field Notes</h3>
287499
<li>Learn from failed attempts</li>
288500
<li>Build your pattern recognition skills</li>
289501
</ul>
290-
<h3 id="training-resources">Training Resources</h3>
291-
<ul>
292-
<li><a href="https://vetswhocode.io/patterns">VetsWhoCode Pattern Drills</a></li>
293-
<li><a href="https://vetswhocode.io/prep">Technical Interview Prep Guide</a></li>
294-
<li><a href="https://vetswhocode.io/exercises">Combat Coding Exercises</a></li>
295-
</ul>
296-
<hr />
297502
<h2 id="standard-operating-procedures">Standard Operating Procedures</h2>
298503
<ol>
299504
<li>Always identify the pattern before coding</li>

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,5 +286,5 @@ <h2 id="general-guidance-professional-development-guidelines">General Guidance:
286286

287287
<!--
288288
MkDocs version : 1.6.1
289-
Build Date UTC : 2024-11-10 23:02:12.564397+00:00
289+
Build Date UTC : 2024-11-10 23:05:46.315679+00:00
290290
-->

search/search_index.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)