package main const INT_MAX = int(^uint(0) >> 1) /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 求最小差值 * @param a int整型一维数组 数组a * @return int整型 */ func minDifference(a []int) int { // write code here qsort(0, len(a) - 1, a) minN := INT_MAX for i:= 0; i< len(a) - 1; i++ { if (a[i] < 0 && a[i+1] < 0) || (a[i] >= 0 && a[i+1] >= 0) { minN = min(minN, a[i+1] - a[i]) } else if a[i+1] - minN < a[i] { minN = a[i+1] - a[i] } } return minN } func qsort(b, e int, vec []int) { if b > e { return } l, r := b, e tmp := vec[b] for l < r { for l < r && vec[r] > tmp { r-- } if l < r { vec[l] = vec[r] l++ } for l < r && vec[l] < tmp { l++ } if l < r { vec[r] = vec[l] r-- } } vec[r] = tmp qsort(b, l-1, vec) qsort(l+1, e, vec) } func min(a, b int) int { if a < b { return a } return b }
public int minDifference(int[] a) { // write code here int min = Integer.MAX_VALUE; for (int i = 0; i < a.length - 1; i++) { for (int j = i + 1; j < a.length; j++) { long temp = (long) a[j] - (long) a[i]; if (Math.abs(temp) < min) { min = (int) Math.abs(temp); } } } return min; }
class Solution: def minDifference(self , a ): # write code here set_tmp = set(a) if len(a) != len(set_tmp): return 0 else: a.sort() min_val = a[1] - a[0] for i in range(1, len(a)-1): if a[i+1] - a[i] < min_val: min_val = a[i+1] - a[i] else: continue return min_val
三步走:
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # 求最小差值 # @param a int整型一维数组 数组a # @return int整型 # class Solution: def minDifference(self , a ): # write code here a = sorted(a) # 排序 import sys res = sys.maxsize # 获取一个 int 最大值 for i, e in enumerate(a): # 穷举比较 n = abs(a[i] - a[i - 1]) if n < res: res = n return res