LeetCode1848. 到目标元素的最小距离(C++)

Posted 敲代码两年半的练习生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode1848. 到目标元素的最小距离(C++)相关的知识,希望对你有一定的参考价值。

1 题目描述

给你一个整数数组 nums (下标 从 0 开始 计数)以及两个整数 target 和 start ,请你找出一个下标 i ,满足 nums[i] == target 且 abs(i - start) 最小化 。注意:abs(x) 表示 x 的绝对值。
返回 abs(i - start) 。
题目数据保证 target 存在于 nums 中。

2 示例描述

2.1 示例1

输入:nums = [1,2,3,4,5], target = 5, start = 3
输出:1
解释:nums[4] = 5 是唯一一个等于 target 的值,所以答案是 abs(4 - 3) = 1 。

2.2 示例2

输入:nums = [1], target = 1, start = 0
输出:0
解释:nums[0] = 1 是唯一一个等于 target 的值,所以答案是 abs(0 - 0) = 0 。

2.3 示例3

输入:nums = [1,1,1,1,1,1,1,1,1,1], target = 1, start = 0
输出:0
解释:nums 中的每个值都是 1 ,但 nums[0] 使 abs(i - start) 的结果得以最小化,所以答案是 abs(0 - 0) = 0 。

3 解题提示

1 <= nums.length <= 1000
1 <= nums[i] <= 10^4
0 <= start < nums.length
target 存在于 nums 中

4 解题思路

简单题我重拳出击。

5 源码详解(C++)

class Solution {
public:
    int getMinDistance(vector<int>& nums, int target, int start) {
        int min = INT_MAX ;
        //int temp_index = 0;
        for ( int index = 0 ; index < nums.size() ; index ++ )
        {
            if ( nums[index] == target )
            {
                //temp_index = index ;
                if ( abs(index - start) < min)
                {
                    min = abs(index - start) ;
                }
            }
        }
        return min ;
    }
};

以上是关于LeetCode1848. 到目标元素的最小距离(C++)的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 72. 编辑距离

LeetCode 542. 01 Matrix

leetcode 1320 二指输入的最小距离

leetcode658+有序数组找出距离数字x最近的k个数字

LeetCode1184. 公交站间的距离(C++)

【python】求数组中两个元素的最小距离?