如何搭建自己的网站服务器地址,重庆网站怎么设置,网站广告动图怎么做,网站浏览历史能恢复吗怎么设置又是一篇算法题#xff0c;今天早上刚做的热乎的~
其实我是想写博客但不知道写些什么#xff08;就水一下啦#xff09; -------------------------------------begin----------------------------------------- 题目解析: 这道题的题目算是最近几道算法题里面题目最短的今天早上刚做的热乎的~
其实我是想写博客但不知道写些什么就水一下啦 -------------------------------------begin----------------------------------------- 题目解析: 这道题的题目算是最近几道算法题里面题目最短的但是单单看题目的话我就只知道有一个数
组需要我们去返回其中符合三角形特性的三条边所以我们可以从示例入手了解这道算法需要
我们去实现的地方~ 讲解算法原理
先说暴力解法吧我们就需要用到三个for循环来进行遍历时间复杂度为O(n^3)在力扣上面肯
定是编译不过的所以在这个基础上我们需要优化算法~ 新思路我们可以将所给数组先进行排序排序成单调递增的数组两个指针left和rightleft指
针从位置0向右遍历right从n-1位置向左遍历分两种情况两指针所指数的和大于位置i的值和
小于位置i的值再定义一个ret变量用于储存有效三角形的个数~ 编写代码
class Solution
{
public:int triangleNumber(vectorint nums) {sort(nums.begin(), nums.end());int ret 0, n nums.size();for(int in-1;i2;i--){int left0,righti-1;while(leftright){if(nums[left]nums[right]nums[i]){retright-left;right--;}else{left;}}}return ret;}
};
差不多就是这个样子啦~ 题目链接直达-
611. 有效三角形的个数 - 力扣LeetCode
----------------------------------------end----------------------------------------