Equal Sides Of An Array(C CodeWars)

解题思路:

(1)dp[i]记录values从起始位置0到当前位置[i]的和

(2)再重新遍历,寻找满足公式的下标

int find_even_index(const int *values, int length) {
	
	int *dp = calloc(length,sizeof(int));
	int sum = 0;
	
	for(int i=0;i<length;i++) {
		sum+=values[i];
		dp[i] = sum;
	}
	for(int i=0;i<length;i++) {
		if (dp[i]-values[i]==dp[length-1]-dp[i]) return i;
	}
	return -1;
}
发布了302 篇原创文章 · 获赞 277 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/coolsunxu/article/details/105659054