4.4 美团数开岗笔试题求大佬们指点

在下是个纯算法小菜bi,早就听闻美团的笔试题不是很简单,昨天一做果然。我就A了第三题,第一题18%~~~第五题有了些许思路,但是时间不够了,gan。
第三题主要思路就是跟着题目意思走,我感觉有点和求素数的思路类似,也就这么搞得。不说废话了,直接上代码了
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class NoNumber {
    public static boolean canChu(int number, int k){
        List<Integer> nums = new ArrayList<Integer>();
        for(int i = 1; i <= Math.sqrt(number); i++){
            if(number % i == 0){
                nums.add(i);
            }
        }
        String str = "";
        int x = 0;
        int[] num2 = new int[nums.size()];
        for(int elem : nums){
            num2[x++] = elem;
        }
        int len = num2.length;
        for(int i = len - 1; i >= 0; i--){
            if(!nums.contains(number / num2[i])){
                nums.add(number / num2[i]);
            }
        }
        for (int elem : nums){
            str += elem;
        }

        return str.indexOf(k + "") != -1 ? true : false;
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int k = sc.nextInt();
        long count = 0;
        int[] numbers = new int[n];
        for(int i = 0; i < n; i++){
            numbers[i] = sc.nextInt();
            if (canChu(numbers[i], k)){
                count = (count + 1) % 20210101;
            }else {
                continue;
            }
        }
        System.out.println(count);

        sc.close();
    }
}
虽然我美团大概率已经凉凉了,但还是想知道其它几题的思路,望各位大佬指点一下~~~~~~

#美团##笔经#
全部评论

相关推荐

2 2 评论
分享
牛客网
牛客企业服务