LeetCode-Algorithms-[Easy]1228. 等差数列中缺失的数字

1228. 等差数列中缺失的数字

	public int missingNumber(int[] arr) {
		int diff1 = arr[1] - arr[0];
		int diff2 = arr[2] - arr[1];
		int diff = diff1;
		if (Math.abs(diff1) > Math.abs(diff2)) {
			diff = diff2;
		}
		int pre = arr[0];
		for (int i = 1; i < arr.length; ++i) {
			if (arr[i] - arr[i - 1] != diff) {
				pre = arr[i - 1];
			}
		}
		return pre + diff;
	}

1.找真正的差值,差值是绝对值最小的那个。因为如果空缺了一个数,其前后数的差的绝对值一定比不缺的要大
2.线性查找或者二分查找,找前后差值不等于差的那个数

发布了272 篇原创文章 · 获赞 7 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/m0_37302219/article/details/105482002