当前位置:网站首页>611. Number of effective triangles
611. Number of effective triangles
2022-07-05 07:24:00 【BugMaker-shen】

611. The number of effective triangles

here n u m s [ l ] + n u m s [ m i d ] > n u m s [ r ] nums[l] + nums[mid] > nums[r] nums[l]+nums[mid]>nums[r], l l l take [ l , m i d − 1 ] [l,mid-1] [l,mid−1] Any number in satisfies the condition , There are a n s + = ( m i d − l ) ans += (mid - l) ans+=(mid−l)
Our current triple (2,6,7) The conditions are satisfied , Due to the inequality on the right nums[r] Fix , What we need to do is to adjust the size of the left side of the inequality , Try to satisfy the inequality
Because we let l l l take [ l , m i d − 1 ] [l,mid-1] [l,mid−1] Any number within is an attempt to make the left side of the inequality larger ( Still meet the conditions ), We should now make the left side of the inequality smaller , Continue to check whether the triangle condition is met , That is to move to the left mid, Continue looking for triples

When the conditions are not met , The sum of two small numbers is too small , To make the left side of the inequality larger , There is only one choice : To the right l l l Take a larger number
class Solution {
public:
int triangleNumber(vector<int>& nums) {
sort(nums.begin(), nums.end(), less<int>());
int n = nums.size();
int ans = 0;
// Fix the maximum number in each cycle
for (int r = n - 1; r >= 2; r--){
int l = 0;
int mid = r - 1;
while(l < mid){
if(nums[l] + nums[mid] > nums[r]){
ans += (mid - l);
// mid It's from r-1 At the beginning ,mid The initial value is large , Now the triangle condition is satisfied , You need to find the number that meets the triangle condition among the smaller numbers
mid--;
}else{
// The sum of two small numbers is too small
l++;
}
}
}
return ans;
}
};
Then we can fix the minimum value , use mid and r Looking for triples ?
In this case , Triangle condition is not satisfied , The sum of two small numbers is too small , We can adjust to the right m i d mid mid Give Way n u m s [ l ] + n u m s [ m i d ] nums[l]+nums[mid] nums[l]+nums[mid] It's worth more , Or left adjustment r r r, Give Way n u m s [ r ] nums[r] nums[r] It's worth less , To satisfy the triangle inequality . This operation is more difficult :
Let's adjust to the right mid,mid Point to 3, We will miss (2,2,3) This combination ; To the left r,r Point to 3, We will miss (2,3,4) This combination
So we should put two pointers for searching triples on the same side of the inequality , When triangle inequality is not satisfied, there is only one choice
边栏推荐
- Chapter 2: try to implement a simple bean container
- Simple operation of running water lamp (keil5)
- An article was opened to test the real situation of outsourcing companies
- Use of Pai platform
- Hdu1232 unimpeded project (and collection)
- U-Boot初始化及工作流程分析
- Matlab在线性代数中的应用(四):相似矩阵及二次型
- npm install -g/--save/--save-dev的区别
- 二分查找(折半查找)
- 现在有html文件,和用vs制作的mvc(连接了数据库),怎么两个相连?
猜你喜欢

PHY drive commissioning --- mdio/mdc interface Clause 22 and 45 (I)

Jenkins reported an error. Illegal character: '\ufeff'. Class, interface or enum are required

Machine learning Seaborn visualization

1290_FreeRTOS中prvTaskIsTaskSuspended()接口实现分析

Hdu1232 unimpeded project (and collection)

Concurrent programming - deadlock troubleshooting and handling

【无标题】

SOC_ SD_ CMD_ FSM

Do you choose pandas or SQL for the top 1 of data analysis in your mind?
![[software testing] 06 -- basic process of software testing](/img/fe/3d8b9b68f95ac7899ab87d6993284d.jpg)
[software testing] 06 -- basic process of software testing
随机推荐
Unforgettable summary of 2021
golang定时器使用踩的坑:定时器每天执行一次
Interpretation of the earliest sketches - image translation work sketchygan
剑指 Offer 56 数组中数字出现的次数(异或)
第 2 章:小试牛刀,实现一个简单的Bean容器
I can't stand the common annotations of idea anymore
2022.06.27_ One question per day
Target detection series - detailed explanation of the principle of fast r-cnn
CADD课程学习(6)-- 获得已有的虚拟化合物库(Drugbank、ZINC)
Simple use of timeunit
Import CV2, prompt importerror: libcblas so. 3: cannot open shared object file: No such file or directory
Literacy Ethernet MII interface types Daquan MII, RMII, smii, gmii, rgmii, sgmii, XGMII, XAUI, rxaui
现在有html文件,和用vs制作的mvc(连接了数据库),怎么两个相连?
Light up the running light, rough notes for beginners (1)
The problem of configuring opencv in qt5.13.2 is solved in detail
Powermanagerservice (I) - initialization
纯碱是做什么的?
Clickhouse database installation deployment and remote IP access
DataGrid offline installation of database driver
Steps and FAQs of connecting windows Navicat to Alibaba cloud server MySQL