首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
水晶之夜
2016-09-19 21:15
重庆理工大学 Java
关注
已关注
取消关注
求问0919赛码网完美世界的笔试编程题
一道是游戏补丁升级问题,一道是方块消除,统计剩余方块数量问题。。
感觉鬼了,2道编程题感觉基本没做。。。
提示
全部评论
推荐
最新
楼层
BlZheng
暨南大学 安卓
献上我的代码,可惜就差一点时间就到了...... import java.util.Scanner; public class WanMeiShiJie { public static final int EMPTY = Integer.MAX_VALUE; public static final int RED = 0; public static final int GREEN = 1; public static final int BLUE = 2; public static final int YELLOW = 3; public static final int PURPLE = 4; public static final int[][] p = { {RED,RED,BLUE,BLUE,GREEN,YELLOW,BLUE,YELLOW,RED,PURPLE}, {GREEN,GREEN,GREEN,BLUE,RED,PURPLE,RED,YELLOW,YELLOW,BLUE}, {BLUE,RED,RED,YELLOW,YELLOW,PURPLE,BLUE,GREEN,GREEN,BLUE}, {YELLOW,RED,BLUE,YELLOW,BLUE,RED,PURPLE,GREEN,GREEN,RED}, {YELLOW,RED,BLUE,BLUE,PURPLE,GREEN,PURPLE,RED,YELLOW,BLUE}, {PURPLE,YELLOW,RED,RED,YELLOW,RED,PURPLE,YELLOW,RED,RED}, {YELLOW,YELLOW,GREEN,PURPLE,GREEN,RED,BLUE,YELLOW,BLUE,GREEN}, {RED,YELLOW,BLUE,BLUE,YELLOW,GREEN,PURPLE,RED,BLUE,GREEN}, {GREEN,GREEN,YELLOW,YELLOW,RED,RED,PURPLE,BLUE,BLUE,GREEN}, {PURPLE,BLUE,RED,RED,PURPLE,YELLOW,BLUE,RED,RED,GREEN}}; public static void main(String[] args) { int numR, numG, numB, numY, numP; numR = numG = numB = numY = numP = 0; for(int i = 0; i < p.length; i++){ for(int j = 0; j < p[0].length; j++){ switch (p[i][j]) { case RED: numR++; break; case GREEN: numG++; break; case BLUE: numB++; break; case YELLOW: numY++; break; case PURPLE: numP++; break; default: break; } } } System.out.println("inital :" + numR + " " + numG + " " + numB + " " + numY + " " + numP ); Scanner cin = new Scanner(System.in); while(cin.hasNextLine()){ String str = cin.nextLine(); String[] nums = str.split(" "); for(String num : nums){ int click = Integer.parseInt(num); int x = click / 10; int y = (click - 1) % 10; int color = p[x][y]; int delete = countContinue(p, x, y); switch (color) { case RED: numR -= delete; break; case GREEN: numG -= delete; break; case BLUE: numB -= delete; break; case YELLOW: numY -= delete; break; case PURPLE: numP -= delete; break; default: break; } for(int i = 0; i < p[0].length; i++){ if(p[p.length - 1][i] == EMPTY) moveCols(p, i); } } System.out.println(numR + " " + numG + " " + numB + " " + numY + " " + numP ); } } public static int countContinue(int[][] p, int x, int y){ int color = p[x][y]; int start = x; int count = 1; while(start + 1 < p.length && p[start + 1][y] == color){ start ++; } int idx = start; while(idx - 1 >= 0 && p[idx - 1][y] == color){ count ++; idx--; } dispearCol(p, y, start, count); int beforeY = y - 1; int afterY = y + 1; while(beforeY >= 0 && p[x][beforeY] == color){ dispearCol(p, beforeY, x, 1); beforeY--; count++; } while(afterY < p[0].length && p[x][afterY] == color){ dispearCol(p, afterY, x, 1); afterY ++; count++; } return count; } public static void dispearCol(int[][] p, int col, int start, int count){ int j = start; for(int i = start - count; i >= 0; i--, j--){ p[j][col] = p[i][col]; } for(; j >=0; j--) p[j][col] = EMPTY; } public static void moveCols(int[][] p, int col){ for(int i = col, j = i + 1; j < p[0].length; i++, j++){ for(int k = 0; k < p.length; k++){ p[k][i] = p[k][j]; } } if(col < p[0].length - 1){ for(int k = 0; k < p.length; k++){ p[k][p[0].length - 1] = EMPTY; } } } }
点赞
回复
分享
发布于 2016-09-19 21:34
牛客723207号
吉林大学 安卓
消消乐做了一小时,,
点赞
回复
分享
发布于 2016-09-19 21:16
dmg
中国矿业大学 前端工程师
感觉真的挺难的。。。
点赞
回复
分享
发布于 2016-09-19 22:39
EdisonPan
华南农业大学 Java
补丁那个究竟用什么数据结构放啊,只能白卷了
点赞
回复
分享
发布于 2016-09-19 22:17
pool
东南大学 前端工程师
补丁升级那题可以想象成有向图求最短路径
点赞
回复
分享
发布于 2016-09-19 21:48
牛客135910号
Java
消消乐题目本身错了吧..另外一个是 DFS
点赞
回复
分享
发布于 2016-09-19 21:32
换个马甲就不认识了
重庆大学 Java
第一题写了一半不想写了,写不出来,真心跟你们这些刷acm的没法比....第二题一看题目那么长直接放弃了
点赞
回复
分享
发布于 2016-09-19 21:25
徘徊的路人甲
未填写教育信息 后端
太凶残了
点赞
回复
分享
发布于 2016-09-19 21:23
就是不告诉你
家里蹲大学 C++
第一题我感觉就是最短路径 消消乐没时间做
点赞
回复
分享
发布于 2016-09-19 21:18
superlxing
西安电子科技大学 Java
同求 。。。
点赞
回复
分享
发布于 2016-09-19 21:17
暂无评论,快来抢首评~
相关推荐
08-01 15:00
门头沟学院 Java
我不要你觉得我要我觉得
点赞
评论
收藏
分享
08-01 14:12
门头沟学院 客户端其它
算法题你就这么刷
算法题在精不在多。首先,要明白,算法题仅会在大厂以及部分独角兽、中厂会在面试题的时候手撕,主要是通过解决的过程,同一道算法题不同人有不同的解法,当然你编写代码也会顺道看看你代码是否规范,大厂的代码一般规范性还是很强的(说不好听的,其实就是方便追责)。如果你真的想刷算法题,我推荐你去 反复刷 ****** ,刚开始你肯定不会,那你就去看讲解,先使用一种方法做出来,然后研究其它方法做这道题,尽可能的多学习使用多种方法解决这个问题,并且你要理解里面的逻辑,还有就是坚持住,不要半途而废。要是闲的没事,可以刷刷基础的算法玩玩。
码农索隆:
我靠,怎么给我那句话屏蔽了
,我那句话是让大家 反复刷前100道题 噢
吐槽集结地!!!
点赞
评论
收藏
分享
07-23 15:05
门头沟学院 Java
面试开始前半小时跟我说被顶替了?
如图,
熊大不大:
不好意思KPI数据刚刚刷新,刚刚达标
点赞
评论
收藏
分享
07-29 11:22
快手_广告_Java开发(实习员工)
微派 提前批一面(面试官很好!!!)
1、介绍一下实习的内容 2、线上的慢SQL是如何优化的 3、如果我们日常遇到的内容一直堆索引有什么问题 4、进程和线程的区别点是什么 5、说一下你对于binlog的理解 6、当我们写流量非常大的时候,有多个Insert/delete怎么保证binlog的有序性(回答的不好,又说的直白了一些) 7、现在有两个更新操作,同时对于同一行数据操作,他们的先后顺序怎么决定的 8、算法:LRU(要求保证线程安全的,想要炫技用的ReentrantLock想要在数据为空的时候阻塞,put到值之后再去唤醒,但是写的有问题...(尴尬)) 9、为什么Redis更快(说的不太清晰,回去要好好总结) 10、缓存击穿(...
查看21道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
百度提前批,三面被推迟一周,喜提秋招第一凉
1.1W
2
...
虾皮秋招一面
3573
3
...
他拿大厂SSP Offer打牌是什么概念啊?25届双非之光
3467
4
...
觉得研发高人一等的这辈子有了
2768
5
...
百度提前批 三面
2032
6
...
最强本科✌
1759
7
...
也是逆天了
1451
8
...
被猿辅导挂了简历,但我想说...
1405
9
...
虾皮一面凉经
1368
10
...
上班一周,工资还没拿,先欠公司两千
1338
创作者周榜
更多
正在热议
更多
#
工作中哪个瞬间让你想离职
#
65629次浏览
581人参与
#
找工作如何保持松弛感?
#
92195次浏览
1118人参与
#
中兴秋招
#
207102次浏览
2303人参与
#
如何快速融入团队?
#
18659次浏览
217人参与
#
Offer比较,你最看重什么?
#
194247次浏览
1319人参与
#
和同事相处最忌讳的是__
#
26581次浏览
256人参与
#
秋招被确诊为……
#
166289次浏览
792人参与
#
投格力的你,拿到offer了吗?
#
87536次浏览
586人参与
#
虾皮求职进展汇总
#
250697次浏览
1883人参与
#
你最希望上岸的公司是?
#
135904次浏览
709人参与
#
计算机专业还有必要去大厂卷吗
#
38719次浏览
183人参与
#
26届的你,投了哪些公司?
#
50349次浏览
518人参与
#
柠檬微趣工作体验
#
6901次浏览
40人参与
#
简历上的经历如何包装
#
32088次浏览
861人参与
#
你跟室友的关系怎么样?
#
8237次浏览
123人参与
#
我对___祛魅了
#
52501次浏览
461人参与
#
通信硬件岗投递时间线
#
18937次浏览
69人参与
#
你遇到最难的面试题目是_
#
17543次浏览
209人参与
#
我想象的实习vs现实的实习
#
290523次浏览
2246人参与
#
什么样的背景能拿SSP?
#
42212次浏览
235人参与
#
你最讨厌面试问你什么?
#
30099次浏览
329人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务