Golang:
思路:先求和判断能否除以3,能的话开始遍历元素并相加,每当和等于总和的1/3时,将和清零并继续向下遍历,再出现一次和的1/3即可返回true,否则返回false
代码如下:
func canThreePartsEqualSum(A []int) bool {
sum:=0
for i:=0;i<len(A);i++{
sum+=A[i]
}
if sum%3==0 {
temp,k,flag1,flag2:=0,0,false,false
for k<len(A) {
temp+=A[k]
if temp==sum/3 {
if flag1==false {
flag1=true
temp=0
}else{
flag2=true
}
if flag1&&flag2 {
return true
}
}
k++
}
}
return false
}
有疑问加站长微信联系(非本文作者)