Given an integer array nums
(0-indexed) and two integers target
and start
, find an index i
such that nums[i] == target
and abs(i - start)
is minimized. Note that abs(x)
is the absolute value of x
.
Return abs(i - start)
.
It is guaranteed that target
exists in nums
.
Example 1:
Input: nums = [1,2,3,4,5], target = 5, start = 3
Output: 1
Explanation: nums[4] = 5 is the only value equal to target, so the answer is abs(4 - 3) = 1.
Example 2:
Input: nums = [1], target = 1, start = 0
Output: 0
Explanation: nums[0] = 1 is the only value equal to target, so the answer is abs(0 - 0) = 0.
Approach
C++
#include <bits/stdc++.h>using namespace std;int getMinDistance(vector<int> &nums, int target, int start){int ans;for (int i = start; i < nums.size(); i++){if (nums[i] == target){ans = abs(i - start);break;}}for (int i = 0; i < start; i++){if (nums[i] == target){ans = min(abs(i - start), ans);}}return ans;}int main(){vector<int> nums = {1, 2, 3, 4, 5};int target = 5, start = 3;cout << getMinDistance(nums, target, start) << "\n";return 0;}
No comments:
Post a Comment