Compare commits
4 Commits
6b9e5aecd7
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 3985820bc6 | |||
| 11db6cf810 | |||
| 8f6290d485 | |||
| 09363135cb |
@@ -1,4 +1,4 @@
|
||||
# Analysis #01 — When Arithmetic Cannot Be Trusted
|
||||
# #01 — When Arithmetic Cannot Be Trusted
|
||||
|
||||
## 1. The Problem
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Analysis #02 — Floating Point Equality Is a Lie
|
||||
# #02 — Floating Point Equality Is a Lie
|
||||
|
||||
## Problem
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.
|
||||
|
||||
You may assume that each input would have exactly one solution, and you may not use the same element twice.
|
||||
|
||||
You can return the answer in any order.
|
||||
|
||||
|
||||
|
||||
Example 1:
|
||||
|
||||
Input: nums = [2,7,11,15], target = 9
|
||||
Output: [0,1]
|
||||
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].
|
||||
Example 2:
|
||||
|
||||
Input: nums = [3,2,4], target = 6
|
||||
Output: [1,2]
|
||||
Example 3:
|
||||
|
||||
Input: nums = [3,3], target = 6
|
||||
Output: [0,1]
|
||||
|
||||
|
||||
Constraints:
|
||||
|
||||
2 <= nums.length <= 104
|
||||
-109 <= nums[i] <= 109
|
||||
-109 <= target <= 109
|
||||
Only one valid answer exists.
|
||||
|
||||
|
||||
Follow-up: Can you come up with an algorithm that is less than O(n2) time complexity?
|
||||
@@ -1,4 +1,4 @@
|
||||
# Analysis #03 — Two Sum Is Not About Numbers
|
||||
# #03 — Two Sum Is Not About Numbers
|
||||
|
||||
---
|
||||
|
||||
@@ -275,18 +275,43 @@ At this point, the original Two Sum is almost unrecognizable.
|
||||
|
||||
See example implementation:
|
||||
|
||||
- examples/two_sum_logs_demo.cpp
|
||||
- examples/two_sum_logs_demo
|
||||
|
||||
---
|
||||
|
||||
## Example Output
|
||||
|
||||
Interview-style reduction:
|
||||
combines events from different request_id → false positive
|
||||
```
|
||||
Synthetic log stream:
|
||||
2026-04-16T10:15:01.100Z service=api event=parse_input latency=12ms request_id=req-1001
|
||||
2026-04-16T10:15:01.110Z service=cache event=cache_miss latency=48ms request_id=req-1001
|
||||
2026-04-16T10:15:01.120Z service=auth event=token_check latency=58ms request_id=req-2001
|
||||
2026-04-16T10:15:01.130Z service=db event=read_user latency=43ms request_id=req-3001
|
||||
2026-04-16T10:15:01.135Z service=db event=read_user latency=55ms request_id=req-1001
|
||||
2026-04-16T10:15:01.144Z service=net event=external_call latency=47ms request_id=req-1001
|
||||
2026-04-16T10:15:01.200Z service=cache event=cache_miss latency=60ms request_id=req-3001
|
||||
2026-04-16T10:15:01.260Z service=net event=external_call latency=52ms request_id=req-3001
|
||||
|
||||
Streaming solution:
|
||||
finds valid pair within same request and time window
|
||||
Threshold: 100ms
|
||||
Time window: 20ms
|
||||
|
||||
Interview-style reduction (ignores request_id and time):
|
||||
first : 2026-04-16T10:15:01.110Z service=cache event=cache_miss latency=48ms request_id=req-1001
|
||||
second: 2026-04-16T10:15:01.120Z service=auth event=token_check latency=58ms request_id=req-2001
|
||||
combined latency: 106ms
|
||||
|
||||
Streaming sliding-window detection:
|
||||
first : 2026-04-16T10:15:01.135Z service=db event=read_user latency=55ms request_id=req-1001
|
||||
second: 2026-04-16T10:15:01.144Z service=net event=external_call latency=47ms request_id=req-1001
|
||||
combined latency: 102ms
|
||||
|
||||
Notes:
|
||||
- The interview-style version can produce a false correlation.
|
||||
- In this dataset, it first matches 58ms from req-2001 with 43ms from req-3001.
|
||||
- That pair exceeds the threshold, but it is operationally meaningless.
|
||||
- The streaming version only correlates events from the same request_id
|
||||
and only within the configured time window.
|
||||
```
|
||||
---
|
||||
|
||||
## Explanation
|
||||
|
||||
Reference in New Issue
Block a user