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

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-18 14:55
门头沟学院 Java
点赞 评论 收藏
分享
程序员小白条:这比例牛逼,750:1
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-17 14:38
干个蛋,干不了一点!!!!我真服了,还没搞完,很急。&nbsp;今天ddl,活没干完直接通宵,刺激。食堂很好吃,感觉离职的时候会胖10斤。mt喜欢能直接干活的,没空指导我,很难受。每个人都是笑嘻嘻的,但是从他们聊天中都能感受到各种试探,我有点慌了大家真的nb,都能准时完成工作下班,我羡慕啊!!!!!每天好累,想离职了💔
牛客26106072...:能去字节实习说明你的能力挺被认可的,实习中的这种累更有利于个人职场成长,试着当熬夜打游戏一样熬一熬,实习的意义就是看自己的差距和适应能力,总比等到工作时各种不适应辞职要好得多吧?
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
评论
2
13
分享

创作者周榜

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