主页 > 其他  > 

16981等腰三角形

16981等腰三角形
16981等腰三角形

⭐️难度:中等 🌟考点:双指针、贪心 📖

📚

import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n=in.nextInt(); int a[]=new int[n],b[]=new int[n]; for(int i=0;i<n;i++) a[i]=in.nextInt(); for(int i=0;i<n;i++)b[i]=in.nextInt(); Arrays.sort(a); Arrays.sort(b); int ans=0; for(int i=0,j=0;i<n;i++){ if(2*a[i]>b[j]){ ans++; j++; } } System.out.println(ans); } }

利用贪心思想,把两个数组排序(短的跟短的配,长的跟长的配),利用双指针,验证两个指针所指的长度能否拼成一个三角形(三角形两边之和大于第三边),可以的话就两个指针都前进,不能的话指向等腰边的指针前进。 验证是否构成三角形时,不用验证一条等腰边与另一条边之和是否大于另一条等腰边,因为一定是大于的,所以只需要验证两条等腰边是否比另一条边长。

标签:

16981等腰三角形由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“16981等腰三角形