假设我们有一个由非负整数组成的数组,我们的任务是计算从数组中选择的三边形的数目,如果将其作为三角形的边长,则可以构成三角形。因此,如果输入类似于[2,2,3,4],则结果将是3,其中前2个为[2,3,4],[2,3,4]使用第二个2,而[2,2 ,3]。
为了解决这个问题,我们将遵循以下步骤-
ret:= 0,n:= num的大小,对num进行排序
当我在n – 1范围内下降到0
sum:= nums [left] + nums [right]
如果sum> nums [i],则从右向左增加ret,向右减少1,否则向左增加1
右:= i – 1,左:= 0
而左<右
返回ret
让我们看下面的实现以更好地理解-
#include <bits/stdc++.h> using namespace std; class Solution { public: int triangleNumber(vector<int>& nums) { int ret = 0; int n = nums.size(); sort(nums.begin(), nums.end()); for(int i = n - 1; i >= 0; i--){ int right = i - 1; int left = 0; html" target="_blank">while(left < right){ int sum = nums[left] + nums[right]; if(sum > nums[i]){ ret += right - left; right--; }else left++; } } return ret; } }; main(){ vector<int> v = {2,2,3,4}; Solution ob; cout << (ob.triangleNumber(v)); }
[2,2,3,4]
输出结果
3
一个角度为90°的三角形称为直角三角形。 我们现在将看到如何以直角三角形打印星星*。 算法 (Algorithm) 算法看起来像这样 - Step 1 - Take number of rows to be printed, n. Step 2 - Make outer iteration I for n times to print rows Step 3 - Make inner iterat
本文向大家介绍计算C ++中给定周长可能的直角三角形数量,包括了计算C ++中给定周长可能的直角三角形数量的使用技巧和注意事项,需要的朋友参考一下 给定三角形的周长P。周长是三角形所有边的总和。目的是找到可以制造的具有相同周长的直角三角形的数量。 如果三角形的边是a,b和c。然后a + b + c = P和a2 + b2 = c2(a,b和c的任意组合的毕达哥拉斯定理) 我们将通过从1到p / 2
Pascal的三角形是工程专业学生的经典示例之一。 它有很多解释。 其中一个着名的是它用于二项式方程。 三角形外的所有值都被视为零(0)。 第一行是0 1 0而只有1获得pascal三角形中的空格,0是不可见的。 通过添加(0 + 1)和(1 + 0)来获取第二行。 输出夹在两个零之间。 该过程持续到达到所需水平。 Pascal的三角形可以使用二项式定理导出。 我们可以使用组合和阶乘来实现这一目标
所有边相等的三角形称为等边三角形。 我们现在将看到如何以等边三角形打印星星*。 算法 (Algorithm) 算法看起来像这样 - Step 1 - Take number of rows to be printed, n. Step 2 - Make an iteration for n times Step 3 - Print " " (space) for in decreasing ord
所有边相等的三角形称为等边三角形。 我们现在将看到如何以等边三角形形状打印星形*,但是颠倒了。 算法 (Algorithm) 算法看起来像这样 - Step 1 - Take number of rows to be printed, n. Step 2 - Make an iteration for n times Step 3 - Print " " (space) for in decrea
我正在按照教程使用OpenGL在屏幕上画一个三角形。我已经正确地遵循了所有的步骤,但我只得到一个绿色屏幕,没有三角形。 这是我现在的代码。在应用程序初始化期间调用DrawScene,并在每个WM_DRAW中调用ResizeScene。我的问题是:为什么三角形没有显示在我的代码中? OpenGL版本:4.6