双指针——三角形计数,就是一些细节处理要严谨,否则还是容易出错
382. 三角形计数
中文
English
给定一个整数数组,在该数组中,寻找三个数,分别代表三角形三条边的长度,问,可以寻找到多少组这样的三个数来组成三角形?
样例
样例 1:
输入: [3, 4, 6, 7]
输出: 3
解释:
可以组成的是 (3, 4, 6),
(3, 6, 7),
(4, 6, 7)
样例 2:
输入: [4, 4, 4, 4]
输出: 4
解释:
任何三个数都可以构成三角形
所以答案为 C(3, 4) = 4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | class Solution: """ @param S: A list of integers @return: An integer """ def triangleCount( self , S): # write your code here # a+b > c # ==> a+b-c > 0 # c=10 [3, 4, 6, 7] ==> l += 1 # c=11 [3, 4, 6, 7] ==> l += 1 # c=9 [3, 4, 6, 7] ==> r -= 1, ans += (r-1) def find_count(arr, k, c): l, r = 0 , k ans = 0 while l < r: if arr[l] + arr[r] < = c: l + = 1 else : ans + = (r - l) r - = 1 return ans S.sort() ans = 0 for i in range ( len (S) - 1 , - 1 , - 1 ): ans + = find_count(S, i - 1 , S[i]) return ans |
标签:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2019-01-12 算法培训
2017-01-12 cassandra压力测试
2017-01-12 HBase Cassandra比较
2017-01-12 重新认识HBase,Cassandra列存储——本质是还是行存储,只是可以动态改变列(每行对应的数据字段)数量而已,当心不是parquet
2017-01-12 HBase底层存储原理——我靠,和cassandra本质上没有区别啊!都是kv 列存储,只是一个是p2p另一个是集中式而已!
2017-01-12 Cassandra 数据模型设计,根据你的查询来制定设计——反范式设计本质:空间换时间
2017-01-12 Cassandra key说明——Cassandra 整体数据可以理解成一个巨大的嵌套的Map Map<RowKey, SortedMap<ColumnKey, ColumnValue>>