今天上午参加了阿里实习笔试,2个编程题(60分钟),做的简直是惨不忍睹,一个都没出来。虽然和面试无缘了,但希望能帮到后面笔试的同学,所以将题目大概写了出来。
第1题
给你一个长度n的数组a,问数组中有多少有价值的数?
规定:若ax为有价值的数,当且仅当:x左侧存在大于ax的数,右侧存在小于ax的数,记左侧最小的大于ax的数为f,右侧小于ax的最大的数记为g,f为g的倍数。
输入:数组的长度n,数组a。
输出:数组中有价值的数的个数。
示例:
输入:
3
4 3 2
输出:1
解法一:简单粗暴
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int[] a = new int[n];
for(int i=0;i<n;i++){
a[i] = input.nextInt();
}
int count = 0;
for(int i = 1; i < n - 1; i++){
int L = 0;
int R = 0

最低0.47元/天 解锁文章
2456





