Given a list of integers nums, a string op representing either “+”, “-“, “/”, or “*”, and an integer val, perform the operation on every number in nums with val and return the result.
Note: “/” is integer division.
Constraints
1 ≤ n ≤ 100,000 where n is the length of nums
Example 1
Input
nums = [3, 1, 6]
op = “+”
val = 4
Output
[7, 5, 10]
Explanation
We add 4 to every number in nums and return it.Example 2
Input
nums = [3, -4, 1]
op = “*”
val = 2
Output
[6, -8, 2]
Explanation
We multiply every number in nums by 2.
C++ List Calculator Algorithm
We can first allocate an array/list and push each result into the array. The time complexity is O(N) and the space complexity is O(N).
vector<int> listCalculator(vector<int>& nums, string op, int val) {
vector<int> res;
for (auto &n: nums) {
switch (op[0]) {
case '+': res.push_back(n + val); break;
case '-': res.push_back(n - val); break;
case '*': res.push_back(n * val); break;
case '/': res.push_back(n / val); break;
}
}
return res;
}
Alternatively, we can modify the elements in the list in place. The time is O(N) and the space is O(1) constant.
vector<int> listCalculator(vector<int>& nums, string op, int val) {
for (int i = 0; i < nums.size(); ++ i) {
switch (op[0]) {
case '+': nums[i] += val; break;
case '-': nums[i] -= val; break;
case '*': nums[i] *= val; break;
case '/': nums[i] /= val; break;
}
}
return nums;
}
–EOF (The Ultimate Computing & Technology Blog) —
323 wordsLast Post: Teaching Kids Programming - Algorithms to Remove Nodes from a Linked List
Next Post: Teaching Kids Programming - Binary Search Algorithm to Compute the Square Root