京东笔试,一题消消乐,二题是否是连通迷宫,大家都过了多少?

rt    100  18#京东##笔试题目#
全部评论
消消乐的代码,我第二题是消消乐,第一题是字母转换,不太一样.发一下第二题的. 第一题的找不到了..我直接删掉了 #include<bits/stdc++.h> using namespace std; int helper(vector<vector<int>>&nums, int i, int j) { int ret = 1; int cur = nums[i][j]; if (i < 0 || j < 0 || i >= 5 || j >= 5 || nums[i][j] == 0) return 0; nums[i][j] = 0; if (i >= 1 && nums[i - 1][j]==cur) { ret += helper(nums, i - 1, j); }if (j >= 1 && nums[i][j - 1] == cur) { ret += helper(nums, i, j - 1); }if (i <= 3 && nums[i + 1][j] == cur) { ret += helper(nums, i + 1, j); } if (j <= 3 && nums[i][j + 1] == cur) { ret += helper(nums, i, j + 1); } return ret; } // 消除并且把上面的落下来 void funcDrop(vector<vector<int>>&nums, int i, int j) { for (int j = 0;j < 5; j++) { int count = 4; for (int i = 4; i >= 0; i--) { if (nums[i][j] != 0) { nums[count--][j] = nums[i][j]; } } for (int i = count; i >= 0; i--) { nums[i][j] = 0; } } return; } int func(vector<vector<int>>&nums) { int ret = INT_MAX; vector<vector<int>>tmp = nums; int tag = 1; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { tmp = nums; // 假设点击这个 int count = helper(tmp, i, j); if (count >= 3) { // 吧当前消除并且上面的落下来... funcDrop(tmp, i, j); ret = min(ret, func(tmp)); tag = 0; } } } // 表示当前的矩阵不能在消除了 if (tag) { int count = 0; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { if (nums[i][j] != 0) { count++; } } } return count; } return ret; } int main() { vector<vector<int>>nums(5, vector<int>(5, 0)); for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { cin >> nums[i][j]; } } cout << func(nums) << endl; return 0; }
点赞 回复 分享
发布于 2019-08-24 22:58
tql 消消乐怎么做
点赞 回复 分享
发布于 2019-08-24 21:06
第二题最后提交了93.7的时候  时间截止了   我测试样例是过了    很痛苦
点赞 回复 分享
发布于 2019-08-24 21:33
我这里没有代码了, 我没保存   不是我不分享啊  我是真的就在赛码的网页里写的  没用自己的ide
点赞 回复 分享
发布于 2019-08-24 21:19
36 100
点赞 回复 分享
发布于 2019-08-24 21:18
求大佬给第一题代码
点赞 回复 分享
发布于 2019-08-24 21:17
大佬求分享思路
点赞 回复 分享
发布于 2019-08-24 21:16
大佬们跪求代码
点赞 回复 分享
发布于 2019-08-24 21:15
0   第二题dfs a了个样例超时了🤨
点赞 回复 分享
发布于 2019-08-24 21:15
可以发下代码不?说下思路也行😂
点赞 回复 分享
发布于 2019-08-24 21:14
package BISHI; import java.util.Arrays; import java.util.Scanner; /**  * 合唱队的N名学生站成一排且从左到右编号为1到N,其中编号为i的学生身高为Hi。 现在将这些学生分成若干组(同一组的学生编号连续),  * 并让每组学生从左到右按身高从低到高进行排列,使得最后所有学生同样满足从左到右身高 从低到高(中间位置可以等高),那么最多能将这些学生分成多少组?  * 合唱队的N名学生站成一排且从左到右编号为1到N,其中编号为i的学生身高为Hi。 现在将这些学生分成若干组(同一组的学生编号连续),  * 并让每组学生从左到右按身高从低到高进行排列,使得最后所有学生同样满足从左到右身高从低 到高(中间位置可以等高),那么最多能将这些学生分成多少组?  * 第一行包含一个整数N,1≤N≤10^5。  *   * 第二行包含N个空格隔开的整数H1到HN,1≤Hi≤10^9。 4 2 1 3 2  *   * @author gary  *  */ public class test4 {     public static void main(String[] args) {         Scanner scanner = new Scanner(System.in);         while (scanner.hasNext()) {             int n = scanner.nextInt();             int[] a = new int[n];             int[] b = new int[n];             for (int i = 0; i < a.length; i++) {                 a[i] = scanner.nextInt();                 b[i] = a[i];             }             Arrays.sort(b);             int ans = 0;             int cha = 0;             int index = 0;             for (int i = 0; i < b.length; i++) {                 if (a[i] == b[i]) {                     ans++;                 } else {                     if (cha == 0) {                         index = i;                     //    System.out.println(index);                     }                     for (int j = index; j < b.length; j++) {                         if (a[i] == b[j]) {                             System.out.println(j-i);                             cha += j - i;                             if (cha == 0) {                                 ans+=i-index+1;                             }                             break;                         }                     }                 }             }             System.out.println(ans);         }     } }
点赞 回复 分享
发布于 2019-08-24 21:13
第一题是不是回溯可以弄出来
点赞 回复 分享
发布于 2019-08-24 21:12
print(3) 36%
点赞 回复 分享
发布于 2019-08-24 21:11
大佬分享下代码😫
点赞 回复 分享
发布于 2019-08-24 21:10
求第一题思路
点赞 回复 分享
发布于 2019-08-24 21:10
求第一题思路,大佬
点赞 回复 分享
发布于 2019-08-24 21:09
楼主发下第一题答案
点赞 回复 分享
发布于 2019-08-24 21:07
第一题求思路
点赞 回复 分享
发布于 2019-08-24 21:07
第一题求思路
点赞 回复 分享
发布于 2019-08-24 21:06
第一题求思路
点赞 回复 分享
发布于 2019-08-24 21:05

相关推荐

07-22 11:53
门头沟学院 Java
终于有一个保底的offer了,但感觉是白菜价
北凝a:我想问问,提前批的offer 有问你啥时候到岗吗,如果你还想找其他的怎么办
点赞 评论 收藏
分享
07-22 11:12
门头沟学院 Java
不是,我就随手投的怎么还真发面试啊
皮格吉:大厂特别快的——来自已经被共享中
点赞 评论 收藏
分享
投递腾讯等公司10个岗位
点赞 评论 收藏
分享
机械打工仔:不管啥专业,找工作改简历的第一课先把你那排版改了,简历上不要写个人简历四个字,找你要简历的谁不知道这个是简历?而且还占那么多空间,直接把自己名字和基础信息写上面,整体字体大一些。 还有这种经典两页简历一页大空白,导出PDF的时候多了一页几乎全是白的你自己看着不难受吗随手的事为啥不能改掉呢,这是态度问题,你试想一下你是HR你打开简历看到格式都没调整过会是什么感受?你自己都不重视你的简历,HR更不会在意。 然后内容你那个做两年咖啡就别往里写了,简历在精不在多,你在往你的简历里打字的时候就要想好这东西对你要找的工作有没有帮助。自我评价写一行就行了,不如给专业技能单开一栏。核心课程均分90这个真别写了,把你上过的有用的专业课列出来也行。有很多地方废话很多的精炼一下,比如你校内项目第一个写的那些,全然没有重点。 好好修改一下,我看你内容也挺优秀的,别被一个随便做的简历耽误了,我一个同专业的打工人看了都揪心更别说一天看几百份简历的HR
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
2
13
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务