当前位置:网站首页>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
边栏推荐
- arcgis_ spatialjoin
- Import CV2, prompt importerror: libcblas so. 3: cannot open shared object file: No such file or directory
- And let's play dynamic proxy (extreme depth version)
- arcpy. SpatialJoin_ Analysis spatial connection analysis
- 现在有html文件,和用vs制作的mvc(连接了数据库),怎么两个相连?
- Today, share the wonderful and beautiful theme of idea + website address
- ModuleNotFoundError: No module named ‘picamera‘
- Light up the running light, rough notes for beginners (1)
- Negative number storage and type conversion in programs
- Basic series of SHEL script (II) syntax + operation + judgment
猜你喜欢
(tool use) how to make the system automatically match and associate to database fields by importing MySQL from idea and writing SQL statements
借助 Navicat for MySQL 软件 把 不同或者相同数据库链接中的某数据库表数据 复制到 另一个数据库表中
【无标题】
Shadowless cloud desktop - online computer
Microservice registry Nacos introduction
611. 有效三角形的个数
Do you choose pandas or SQL for the top 1 of data analysis in your mind?
Unforgettable summary of 2021
[idea] efficient plug-in save actions to improve your work efficiency
U-boot initialization and workflow analysis
随机推荐
Delayqueue usage and scenarios of delay queue
Negative number storage and type conversion in programs
Shadowless cloud desktop - online computer
What if the DataGrid cannot see the table after connecting to the database
[software testing] 05 -- principles of software testing
SD_ CMD_ SEND_ SHIFT_ REGISTER
UNIX commands often used in work
window navicat连接阿里云服务器mysql步骤及常见问题
Qu'est - ce que l'hydroxyde de sodium?
Import CV2 prompt importerror: libgl so. 1: Cannot open shared object file: no such file or directory
【无标题】
Tshydro tool
Raspberry pie 4B arm platform aarch64 PIP installation pytorch
R language learning notes 1
网易To B,柔外刚中
2022年PMP项目管理考试敏捷知识点(7)
Using GEE plug-in in QGIS
1290_FreeRTOS中prvTaskIsTaskSuspended()接口实现分析
Mipi interface, DVP interface and CSI interface of camera
二分查找(折半查找)