【Leetcode刷题篇】leetcode611 有效三角形的个数
发布日期:2021-06-29 15:35:42
浏览次数:2
分类:技术文章
本文共 1335 字,大约阅读时间需要 4 分钟。
给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。
示例 1:
输入: [2,2,3,4] 输出: 3 解释: 有效的组合是: 2,3,4 (使用第一个 2) 2,3,4 (使用第二个 2) 2,2,3
注意:
数组长度不超过1000。 数组里整数的范围为 [0, 1000]。
要注意的:边界的问题。
解题思路:第一种方式便是常见的遍历的方法了。
// 第一种方法 public int triangleNumber(int[] nums) { // 判断数组的长度 if(nums.length<3) { return 0; } // 存储结果 int res = 0; // 遍历 for(int i=0;inums[k]&&nums[i]+nums[k]>nums[j]&&nums[j]+nums[k]>nums[i]) { res++; } } } } return res; }
时间复杂度为:O(N^3)
第二种方法 :便是先对其排序,那么仅需遍历两边,然后找到满足第三边的那个最大值即可。而找这个最大值可通过二分查找的办法。找到最大值的左边界的值
// 第二种方法 确定前两个值之后,寻找第三个值用二分查找的办法 只需满足一条nums[i]+nums[j]>nums[k] public int triangleNumber_2(int[] nums) { // 判断 if(nums.length<3) { return 0; } Arrays.sort(nums); // 结果存储 int res = 0; for(int i=0;i>1); if(nums[mid]>=target) { right = mid-1; }else { left = mid+1; } } return left; }
时间复杂度为:O(N^2*logN)
第三种解题思路:直接找
public int triangleNumber_3(int[] nums) { if(nums.length<3) { return 0; } // 排序 Arrays.sort(nums); int res = 0; for(int i=0;inums[k]) { k++; } res += k-j-1; } } return res; }
时间复杂度为:O(N^2)
转载地址:https://codingchaozhang.blog.csdn.net/article/details/111937207 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月19日 11时53分05秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
OpenCV中与matlab中相对应的函数
2019-04-29
C/C++中二维数组作函数形参时,调用函数时,可传递的实参类型的小结
2019-04-29
cvGetSubRect与cvMul用法
2019-04-29
opencv图像处理梯度边缘和角点
2019-04-29
Caffe源码中blob文件分析
2019-04-29
OpenCV 图像采样 插值 几何变换
2019-04-29
图像处理-仿射变换 AffineTransform
2019-04-29
图像二值化----otsu(最大类间方差法、大津算法)
2019-04-29
图像二值化----otsu(最大类间方差法、大津算法)(二)
2019-04-29
OpenCV编程案例:使用轮廓函数检测连通区域
2019-04-29
opencv使用cvFindContours提取联通域
2019-04-29
C++中MessageBox的常见用法
2019-04-29
ordfilt2函数功能说明
2021-07-02
在图像变换中用最小二乘法求解仿射变换参数
2021-07-02
软件包应用分享|基于RT-Thread的百度语音识别(一)
2021-07-02
12月8日 RCEA - RT-Thread能力认证考试考前通知
2021-07-02
论坛热贴 | RT-Thread音频驱动开发(一)
2021-07-02
基于 Keil MDK 移植 RT-Thread Nano
2021-07-02
【报名截至今晚】12月14日深圳嵌入式与音频开发专题会议预告
2021-07-02
移植 RT-Thread Nano 到 RISC-V
2021-07-02