关注
第二道很明显用双指针更简单一点吧,i指向第一个数,j指向最后一个数,两边往中间移就好了,写了一下,这么写的好处是不用讨论你博客中写的那些特殊情况,都包含在这段代码里了,按我的逻辑是没有问题的,有问题的话请指教! def equal_3(arr):
# 判断特殊输入
if not arr or len(arr) < 3:
return False
left = 0 # 表示分成三组之后,第一组的最后元素的下标
right = len(arr) - 1 # 表示分成三组之后,第三组的第一个元素下标
sum_l = arr[0] # 第一组的和
sum_r = arr[len(arr) - 1] #第三组的和
# 当最后left=right时,必然不存在满足的分法
while left < right:
# 如果第一组的和小于第三组,left右移,sum_l增加;如果第一组的和大于第三组,right左移,sum_r增加
# 相等的情况时就判断中间的那组和是否和这两组和相同,相同则返回True,不同的话因为可能会存在[1,2,3,6,3,1,2]
# 这种情况,所有左右指针同时移
if sum_l < sum_r:
left += 1
sum_l += arr[left]
elif sum_l > sum_r:
right -= 1
sum_r += arr[right]
else:
if sum(arr[left+1:right]) == sum_l:
return True
else:
left += 1
sum_l += arr[left]
right -= 1
sum_r += arr[right]
return False
查看原帖
点赞 6
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 简历上的AI项目,面试官到底想看什么?2.3W
- 2... 字节java后端开发实习凉经7088
- 3... 我做过的,被面试官夸爆的那些Ai项目(二)4814
- 4... AI面试相关之RAG与Doris(JAVA)4556
- 5... AI产品实习生面试要达到什么水平?3402
- 6... 面试官视角聊聊:小龙虾OpenClaw如何0基础上手?3357
- 7... 航旅纵横JAVA 春招3313
- 8... 春招冲刺季|求职交流群正式启动!发帖赚现金,抱团拿offer!3002
- 9... 京东一面面经2804
- 10... 3.4 字节后端开发转正实习二面2155
正在热议
更多
# 交出你的校招焚诀 #
9836次浏览 166人参与
# 27届求职交流 #
2061次浏览 69人参与
# 神州信息求职进展汇总 #
3487次浏览 66人参与
# 实习生至暗时刻 #
17400次浏览 327人参与
# 26届求职交流 #
1932次浏览 51人参与
# 面试___岗的必刷题单 #
11547次浏览 204人参与
# 实习想申请秋招offer,能不能argue薪资 #
224622次浏览 1192人参与
# 米哈游求职进展汇总 #
583211次浏览 2995人参与
# 字节开奖 #
130500次浏览 602人参与
# 哪些公司开暑期实习了? #
16245次浏览 135人参与
# 你经历过哪些AI幻觉? #
4827次浏览 115人参与
# 春招开局,你有保底offer吗? #
23602次浏览 193人参与
# 三月的小目标 #
9761次浏览 176人参与
# AI面试问题分享 #
12450次浏览 253人参与
# 你被哪些公司挂了? #
148641次浏览 821人参与
# 找AI工作应该卷什么? #
3725次浏览 68人参与
# 十一月总结 #
82952次浏览 428人参与
# 生化医药面经大本营 #
172532次浏览 549人参与
# 实习生的生存小技巧 #
6608次浏览 106人参与
# 你觉得第一学历对求职有影响吗? #
234403次浏览 1278人参与
# 我的第一份实习怎么找的 #
236366次浏览 1965人参与
