近期论坛无法登录的解决方案


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 668|回复: 3
收起左侧

DropBox OA 代码

[复制链接] |试试Instant~ |关注本帖
caoyi 发表于 2016-10-6 15:19:34 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
Grid . 鍥磋鎴戜滑@1point 3 acres
照样是老题目,https://www.dropbox.com/sh/jiedm ... IQAXXyfeCeVHfa?dl=0献出解法:

public static List<String> solution (int N, List<Cell> lights, List<Cell> queries) {
                List<String> reList = new ArrayList<>();
                Map<Integer, Integer> rows = new HashMap<>();
                Map<Integer, Integer> cols = new HashMap<>();
                Map<Integer, Integer> diags = new HashMap<>();
                Map<Integer, Integer> rDiags = new HashMap<>();
                // step1, fill in array
                for (int i = 0; i < lights.size(); i++) {
                        Cell Cell = lights.get(i);
                        Integer count = rows.get(Cell.x - 1);
                        if (count == null) {
                                count = 1;
                        } else {
                                count++;
                        }
                        rows.put(Cell.x - 1, count);
                        count = cols.get(Cell.y - 1);
                        if (count == null) {
                                count = 1;
                        } else {
                                count++;
                        }
                        cols.put(Cell.y - 1, count);
                        count = diags.get(Cell.x + Cell.y - 2);
                        if (count == null) {
                                count = 1;
                        } else {
                                count++;
                        }
                        diags.put(Cell.x + Cell.y - 2, count);
                        count = rDiags.get(Cell.y - Cell.x + N - 1);
                        if (count == null) {
                                count = 1;
                        } else {
                                count++;
                        }
                        rDiags.put(Cell.y - Cell.x + N - 1, count);
                }
                // step2, turn off lights
                List<Integer> counts = new ArrayList<>();
                for (Cell query : queries) {
                        int sum = 0;
                        //System.out.println(query.x + " " + query.y);
                        sum += rows.get(query.x - 1) == null ? 0 : rows.get(query.x - 1);
                        sum += cols.get(query.y - 1) == null ? 0 : cols.get(query.y - 1);
                        sum += diags.get(query.x + query.y - 2) == null ? 0 : diags.get(query.x + query.y - 2);
                        sum += rDiags.get(query.y - query.x + N - 1) == null ? 0 : rDiags.get(query.y - query.x + N - 1);
                        counts.add(sum);
                }
                // step3,
                for (int index = 0; index < queries.size(); index++) {
                        int x = queries.get(index).x - 1;
                        int y = queries.get(index).y - 1;
                        int sum = counts.get(index);
                        if (lights.contains(queries.get(index))) {
                                sum -= 4;
                        }
                        for (int i = Math.max(0, x - 1); i <= Math.min(x + 1, N - 1); i++) {
                                for (int j = Math.max(0, y - 1); j <= Math.min(y + 1, N - 1); j++) {
                                          Cell lamp = new Cell(i + 1, j + 1);
                                          if (i == x && j == y) continue;
                                          if (lights.contains(lamp)) {
                                                  sum--;
                                          }
                                }
                        }
                       
                        if (sum > 0) {
                                reList.add("LIGHT");
                        } else {
                                reList.add("DARK");
                        }
                }
                return reList;               
        }



评分

1

查看全部评分

麻麻小猪 发表于 2016-10-6 15:20:57 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
请问楼主是海投还是内推的呀?
回复 支持 反对

使用道具 举报

chensijie 发表于 2017-2-15 12:53:24 | 显示全部楼层
关注一亩三分地微博:
Warald
另外,它是给你case让你自己以自己想要的形式存取,自己跑,自己测吗??
回复 支持 反对

使用道具 举报

chensijie 发表于 2017-2-15 12:54:55 | 显示全部楼层
chensijie 发表于 2017-2-15 12:53
另外,它是给你case让你自己以自己想要的形式存取,自己跑,自己测吗??

少了个问题。求问楼主,在oa的时候,我可以用visual studio 之类的debug好再把代码贴上去吗?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-6-25 13:33

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表