当前位置:网站首页>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
边栏推荐
- Simple operation with independent keys (hey, a little fancy) (keil5)
- [untitled]
- Docker installs MySQL and uses Navicat to connect
- [software testing] 02 -- software defect management
- 第 2 章:小试牛刀,实现一个简单的Bean容器
- Interpretation of the earliest sketches - image translation work sketchygan
- Clickhouse database installation deployment and remote IP access
- What is soda?
- Import CV2 prompt importerror: libgl so. 1: Cannot open shared object file: no such file or directory
- 玩转gRPC—深入概念与原理
猜你喜欢
DataGrid offline installation of database driver
[software testing] 03 -- overview of software testing
Using GEE plug-in in QGIS
1290_ Implementation analysis of prvtaskistasksuspended() interface in FreeRTOS
Miracast技术详解(一):Wi-Fi Display
SD_ CMD_ SEND_ SHIFT_ REGISTER
Basic series of SHEL script (III) for while loop
U-boot initialization and workflow analysis
【无标题】
Microservice registry Nacos introduction
随机推荐
玩转gRPC—深入概念与原理
PostMessage communication
纯碱是做什么的?
氢氧化钠是什么?
2022年PMP项目管理考试敏捷知识点(7)
Qu'est - ce que l'hydroxyde de sodium?
Machine learning Seaborn visualization
Intelligent target detection 59 -- detailed explanation of pytoch focal loss and its implementation in yolov4
npm install -g/--save/--save-dev的区别
Simple operation of running water lamp (keil5)
Mid 2022 documentary -- the experience of an ordinary person
Graduation thesis project local deployment practice
(tool use) how to make the system automatically match and associate to database fields by importing MySQL from idea and writing SQL statements
Three body goal management notes
M2dgr slam data set of multi-source and multi scene ground robot
Idea to view the source code of jar package and some shortcut keys (necessary for reading the source code)
Now there are HTML files and MVC made with vs (connected to the database). How can they be connected?
Unconventional ending disconnected from the target VM, address: '127.0.0.1:62635', transport: 'socket‘
第 2 章:小试牛刀,实现一个简单的Bean容器
【Node】nvm 版本管理工具