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(); } }虽然我美团大概率已经凉凉了,但还是想知道其它几题的思路,望各位大佬指点一下~~~~~~