每日一题:给你一个长度为n的序列A,你需要算出有多少个三元组(Ai,Aj,Ak)满足i<j<k且Ai≤Aj≤Ak。

编程入门 行业动态 更新时间:2024-10-09 07:19:08

每日一题:<a href=https://www.elefans.com/category/jswz/34/1769601.html style=给你一个长度为n的序列A,你需要算出有多少个三元组(Ai,Aj,Ak)满足i<j<k且Ai≤Aj≤Ak。"/>

每日一题:给你一个长度为n的序列A,你需要算出有多少个三元组(Ai,Aj,Ak)满足i<j<k且Ai≤Aj≤Ak。

每日一题:给你一个长度为n的序列A,你需要算出有多少个三元组(Ai,Aj,Ak)满足i<j<k且Ai≤Aj≤Ak。

2020年11月10日,微众银行校招笔试,算法第三题


一、题目描述

题目:
给你一个长度为n的序列A,你需要算出有多少个三元组(Ai,Aj,Ak)满足i<j<k且Ai≤Aj≤Ak。

输入描述:第一行为一个整数n,表示序列A的长度。接下来一行为n个整数,第i个数表示Ai的值。
输出描述:输出一个整数x,表示满足要求的三元组数量。样例输入:62 3 5 4 3 3
样例输出:6

二、解题思路

  1. 定义一个长度为n的数组
  2. 存入n个数到数组中
  3. 由于比较连续3个数,所以,进行三重for循环,满足第一个下标小于第二个下标,第二个下标小于第三个下标,且第一个值小于第二个,第二个值小于第三个,那么则为满足条件的数值。

三、实现代码

代码如下:

package weizhong;
import java.util.Scanner;public class Test3 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);//输入数组长度nint n = sc.nextInt();//定义数组,长度为nint[] nums = new int[n];for (int i = 0; i < n; i++) {nums[i] = sc.nextInt();}//判断是否为三元组int count = 0;for (int i = 0; i < n-2; i++) {for (int j = i+1; j < n-1; j++) {for (int k = j+1; k < n; k++) {if (nums[i]<=nums[j] && nums[j]<=nums[k]){count++;}}}}System.out.println(count);}
}

更多推荐

每日一题:给你一个长度为n的序列A,你需要算出有多少个三元组(Ai,Aj,Ak)满足i<j<k且Ai≤Aj≤Ak。

本文发布于:2024-02-13 07:11:48,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757543.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:给你   序列   有多少个   长度为   Ak

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!