題目連結:
題目意譯:
給定一個整數陣列 nums (索引值從 0 開始)以及兩個整數 target 和 start,找到一個索引值 i 使得 nums[i] == target 且 abs(i - start) 盡可能地小。注意,abs(x) 為 x 之絕對值。
回傳 abs(i - start) 。
保證 target 存在於 nums 中。
限制:
1 ≦ nums.length ≦ 1000
1 ≦ nums[i] ≦ 10 ^ 4
0 ≦ start < nums.length
target 在 nums 中。
範例測資:
範例 1:
輸入: nums = [1,2,3,4,5], target = 5, start = 3
輸出: 1
解釋: nums[4] = 5 是唯一一個值等於 target 的,所以答案為 abs(4 - 3) = 1 。
範例 2:
輸入: nums = [1], target = 1, start = 0
輸出: 0
解釋: nums[0] = 1 是唯一一個值等於 target 的,所以答案為 abs(0 - 0) = 0 。
範例 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 。
解題思維:
就是單純地掃過所有 nums 中的數字 nums[i] ,先看 nums[i] 是否等於 target ,然後再計算 abs(i - start) 。其中最小的 abs(i - start) 即是所求。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。