美团今晚的题目比想象中好一些,顺便求大佬们ac思路

看秋招的几道dp瑟瑟发抖,今晚的两道编程好像还过得去#笔试题目#
全部评论
美团点评2018春招编程题题解  https://www.nowcoder.com/discuss/70063
点赞 回复 分享
发布于 2018-03-23 12:07
第一题怎么做的。。第二题倒是简单,先找0-9是不是全部有,有的话再找1-9里出现次数最少的那个或者找0
点赞 回复 分享
发布于 2018-03-22 21:27
第一题模式匹配?第二题完全背包?
点赞 回复 分享
发布于 2018-03-23 00:23
说一个时间换空间的方法, 先使用一个二维数组S[n][256],S[i][j]代表a串前i个字符里面有多少个ascii码为j的字符。 然后扫一遍a串就可以把这个S数组给求出来,复杂度O(n) 然后,对于b串的第i个字符c,其实我们就是想知道该字符和a串的i-i+k(k代表a串比b串长多少)子串相比到底有多少个不一样的。 因此其实就是S[i+k][c] - S[i][c]。 所以总的复杂度是O(n) 不需要DP啥的
点赞 回复 分享
发布于 2018-03-22 23:56
抓住字符串只有ab的条件,把字符比较转化为数组内加减,算是DP的思想吧
点赞 回复 分享
发布于 2018-03-22 22:31
100%,100%
点赞 回复 分享
发布于 2018-03-22 22:28
第一道题暴力AC了。。。 import java.util.Scanner; public class Main { public static int distance(char[] c1, char[] c2, int index) { int distance = 0; int count = c2.length; for (int i = 0; i < count; i++) { if (c1[i + index] != c2[i]) { distance++; } } return distance; } public static void main(String[] args) { Scanner in = new Scanner(System.in); char[] c1 = in.nextLine().toCharArray(); char[] c2 = in.nextLine().toCharArray(); int num = c1.length - c2.length+ 1; int total = 0; for (int i = 0; i < num; i++) { total += distance(c1,c2,i); } System.out.println(total); } }
点赞 回复 分享
发布于 2018-03-22 22:02
第二题,输入55为什么输出是1,不应该是4吗
点赞 回复 分享
发布于 2018-03-22 22:00
同求最小整数,有什么特别需要主要的,
点赞 回复 分享
发布于 2018-03-22 21:38
这前面这么多逻辑题摆明了就是吓唬人的啊?后面编程题还比较简单,但是没时间做了唉。烦躁啊,都花在逻辑题上了。
点赞 回复 分享
发布于 2018-03-22 21:26
第一道咋做 ?也是dp嘛?只通过了70%
点赞 回复 分享
发布于 2018-03-22 21:25
第一题是字符串的,其实这道题还蛮好的,要转换思路,从贡献的角度考虑。
点赞 回复 分享
发布于 2018-03-22 21:24
没有AC,部分通过会有分数吗
点赞 回复 分享
发布于 2018-03-22 21:24
package test1; import java.util.*; public class Main {     public static void main(String[] args)throws Exception     {         Scanner sc = new Scanner(System.in);         String str = sc.nextLine();         int[] num = new int[10];         for(int i = 0;i<str.length();i++)         {             num[str.charAt(i)-'0']++;         }         num[0]++;         int j = findMin(num);         if( j == 0) {             System.out.print(1);             int count = num[j] - 1;                 while(count-- >= 0)                     System.out.print(0);             return;         }else{             int count = num[j];             while(count-- >= 0)                 System.out.print(j);             return;         }     }     static int findMin(int[] a) {         int num = a[0];         int j = 0;         for(int i = 1; i < 10; ++i) {             if(num > a[i]) {                 num = a[i];                 j = i;             }         }         return j;     } }
点赞 回复 分享
发布于 2018-03-22 21:24
请问最小正整数怎么做,已交卷
点赞 回复 分享
发布于 2018-03-22 21:20
有没有贴代码的,坐等
点赞 回复 分享
发布于 2018-03-22 21:18
逻辑题真是炸了,看图看不明白,概率不会算,智力题更闹心
点赞 回复 分享
发布于 2018-03-22 21:16
编程大家都一样的?我的一道是求两字符串距离,一道是求不能组成的最小正整数。
点赞 回复 分享
发布于 2018-03-22 21:14

相关推荐

牛客316659795号:不是,证明hr初筛已经过了,要投给部门筛一遍
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务