Altitude control in Drone Programming - Time & Space Complexity
When controlling a drone's altitude, it's important to know how the time to adjust changes as the target altitude changes.
We want to understand how the program's steps grow when the altitude target grows.
Analyze the time complexity of the following code snippet.
function adjustAltitude(current, target) {
while (current != target) {
if (current < target) {
current += 1;
} else {
current -= 1;
}
}
return current;
}
This code changes the drone's altitude step by step until it reaches the target altitude.
- Primary operation: The while loop that changes altitude by 1 each time.
- How many times: It runs once for each step difference between current and target altitude.
As the difference between current and target altitude grows, the number of steps grows the same way.
| Input Size (difference) | Approx. Operations (steps) |
|---|---|
| 10 | 10 |
| 100 | 100 |
| 1000 | 1000 |
Pattern observation: The steps increase directly with the altitude difference.
Time Complexity: O(n)
This means the time to reach the target altitude grows linearly with how far away it is.
[X] Wrong: "The altitude adjustment happens instantly regardless of distance."
[OK] Correct: The code changes altitude one step at a time, so more distance means more steps and more time.
Understanding how loops grow with input size helps you explain how your code will behave in real drone control situations.
"What if the altitude changed by 2 units each loop instead of 1? How would the time complexity change?"
Practice
Solution
Step 1: Understand altitude control function
Altitude control is about managing the drone's height above ground.Step 2: Compare options to this function
Only To keep or change the drone's height safely talks about height control, others focus on speed, battery, or camera.Final Answer:
To keep or change the drone's height safely -> Option AQuick Check:
Altitude control = height management [OK]
- Confusing altitude with speed control
- Thinking altitude control manages battery
- Mixing altitude control with camera settings
Solution
Step 1: Identify correct function call syntax
Function calls use parentheses with numeric values, like setAltitude(100).Step 2: Check other options for syntax errors
altitude = 100m uses invalid unit '100m' without quotes or function; C uses string instead of number; D assigns value but not a function call.Final Answer:
setAltitude(100) -> Option BQuick Check:
Function call with number = setAltitude(100) [OK]
- Using units like '100m' directly in code
- Assigning string instead of number for altitude
- Confusing assignment with function call
current_altitude = 50
set_target = 100
if current_altitude < set_target:
print('Ascending')
else:
print('Holding position')Solution
Step 1: Compare current altitude and target
current_altitude is 50, set_target is 100, so 50 < 100 is True.Step 2: Determine which print runs
Since condition is True, it prints 'Ascending'.Final Answer:
Ascending -> Option CQuick Check:
50 < 100 means Ascending [OK]
- Confusing less than with greater than
- Expecting 'Holding position' when ascending
- Thinking code has syntax error
def adjust_altitude(current, target):
if current > target
return 'Descending'
else:
return 'Ascending'Solution
Step 1: Check syntax of if statement
The if line lacks a colon at the end, which is required in Python.Step 2: Verify other parts
Comparison operator and return statements are correct; indentation is consistent.Final Answer:
Missing colon after if condition -> Option DQuick Check:
Python if needs colon ':' [OK]
- Forgetting colon after if condition
- Assuming wrong operator causes error
- Misreading indentation as error
def control_altitude(current):
target = 120
if current < target:
power = 70
elif current > target:
power = 30
else:
power = 50
return power
print(control_altitude(120))Solution
Step 1: Understand the target and current altitude
Target is 120 meters; current altitude passed is 120.Step 2: Follow the if-elif-else logic
Since current equals target, the else block runs, setting power to 50.Final Answer:
50 -> Option AQuick Check:
Hover power at target altitude = 50 [OK]
- Choosing power for ascending or descending instead of hover
- Confusing comparison operators
- Returning altitude instead of power
Ready to prove it?
Pass the test and this pattern moves unknown
