鱼C论坛

 找回密码
 立即注册
查看: 3031|回复: 7

[已解决]救救孩子吧,写不出来

[复制链接]
发表于 2021-11-15 18:08:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求解
最佳答案
2021-11-17 11:14:26
  1. public class Test01 {
  2.     public static void main(String[] args) {

  3.         Scanner scanner=new Scanner(System.in);
  4.         //输入n
  5.         int n = scanner.nextInt();
  6.         //输入n个点的高度
  7.         int[] nums=new int[n];
  8.         for (int i=0;i<n;i++){
  9.             nums[i]=scanner.nextInt();
  10.         }
  11.         //输出山的个数
  12.         System.out.println(countMountain(n,nums));
  13.     }
  14.     //计算山的个数
  15.     public static Integer countMountain(int n,int[] nums){
  16.         //如果点的个数小于3则不能构成山,所以直接返回0
  17.         if (nums.length<3){
  18.             return 0;
  19.         }
  20.         int res=0;
  21.         //从索引值为1的点开始遍历,分别向两端搜索小于当前索引值的点的个数,两个值的乘积即为当前索引值为山峰的山的个数
  22.         for (int i=1;i<nums.length-1;i++){
  23.             int leftNums=0;
  24.             for (int j=0;j<i;j++){
  25.                 if (nums[j]<nums[i]){
  26.                     leftNums++;
  27.                 }
  28.             }
  29.             int rightNums=0;
  30.             for (int j=i+1;j<nums.length;j++){
  31.                 if (nums[j]<nums[i]){
  32.                     rightNums++;
  33.                 }
  34.             }
  35.             res+=leftNums*rightNums;
  36.         }
  37.         return res;
  38.     }
  39. }
复制代码
F9214F8DADD4CB68AEBB9D6A598D195C.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-15 18:17:25 | 显示全部楼层
        一个问题不明白,样例中的 (0 , 2 , 1)、(0 , 3 , 1)、(0 、4 、1) 、(0 、4 、3)为什么就不是一座山?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-15 18:29:36 | 显示全部楼层
jackz007 发表于 2021-11-15 18:17
一个问题不明白,样例中的 (0 , 2 , 1)、(0 , 3 , 1)、(0 、4 、1) 、(0 、4 、3)为什么 ...

顺序不能变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-15 19:09:24 | 显示全部楼层
  1. n = int(input())
  2. d = list(map(int , input() . split()))
  3. e = [(d[a] , d[b] , d[c]) for a in range(len(d) - 2) for b in range(a + 1 , len(d) - 1) for c in range(b + 1 , len(d)) if d[b] > d[a] and d[b] > d[c]]
  4. print(len(e))
  5. print(*e)
复制代码

        运行实况:
  1. D:\00.Excise\Python>python x.py
  2. 5
  3. 0 1 3 4 2
  4. 5
  5. (0, 3, 2) (0, 4, 2) (1, 3, 2) (1, 4, 2) (3, 4, 2)

  6. D:\00.Excise\Python>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-15 19:17:08 | 显示全部楼层
我走了,我连题目都不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-15 19:17:24 | 显示全部楼层
谢了好兄弟,python我也能写出来,但是我想知道的是JAVA怎么写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-16 17:14:28 From FishC Mobile | 显示全部楼层
有没有大佬,写一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-17 11:14:26 | 显示全部楼层    本楼为最佳答案   
  1. public class Test01 {
  2.     public static void main(String[] args) {

  3.         Scanner scanner=new Scanner(System.in);
  4.         //输入n
  5.         int n = scanner.nextInt();
  6.         //输入n个点的高度
  7.         int[] nums=new int[n];
  8.         for (int i=0;i<n;i++){
  9.             nums[i]=scanner.nextInt();
  10.         }
  11.         //输出山的个数
  12.         System.out.println(countMountain(n,nums));
  13.     }
  14.     //计算山的个数
  15.     public static Integer countMountain(int n,int[] nums){
  16.         //如果点的个数小于3则不能构成山,所以直接返回0
  17.         if (nums.length<3){
  18.             return 0;
  19.         }
  20.         int res=0;
  21.         //从索引值为1的点开始遍历,分别向两端搜索小于当前索引值的点的个数,两个值的乘积即为当前索引值为山峰的山的个数
  22.         for (int i=1;i<nums.length-1;i++){
  23.             int leftNums=0;
  24.             for (int j=0;j<i;j++){
  25.                 if (nums[j]<nums[i]){
  26.                     leftNums++;
  27.                 }
  28.             }
  29.             int rightNums=0;
  30.             for (int j=i+1;j<nums.length;j++){
  31.                 if (nums[j]<nums[i]){
  32.                     rightNums++;
  33.                 }
  34.             }
  35.             res+=leftNums*rightNums;
  36.         }
  37.         return res;
  38.     }
  39. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-21 02:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表