回复: 5
跳转到指定楼层
上一主题 下一主题
收起左侧

新鲜电面出炉,不难,但是我感觉悬了

全局:

2015(10-12月) 码农类General 硕士 全职@snapchat - 猎头 - 技术电面  | | Other | 在职跳槽

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

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
// This is the text editor interface.
// Anything you type or change here will be seen by the other person in real time.

/*
Consider a grid where all the points are represented by integers.

.........................................
...(-2,2
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
p point if there is a path from (0,0) to that point, where the path only consists of k-snap points.

Question 2: Given k, return all the reachable k-snap points.
*/


评分

参与人数 3大米 +21 收起 理由
AnthonyNeu + 3 感谢分享!
ico0018 + 3 谢谢你的介绍!
虾米酱 + 15 感谢分享!

查看全部评分


上一篇:Yelp OA v5
下一篇:Amazon

本帖被以下淘专辑推荐:

全局:
        分享一个答案
        public boolean  isSnapPoint(Point p, int k) {
                int x = Math.abs(p.x);
                int y = Math.abs(p.y);
                int val = 0;
                while (x > 0) {
                        val += x % 10;
                        x /= 10;
                }
                while (y > 0) {
                        val += y % 10;
                        y /= 10;
                }
                return val <= k;
        }

        public HashSet<Point> ReachableKSnapPoint(int k) {
                HashSet<Point> points = new HashSet<Point>();
                if (k < 0) return points;
                helper(new Point(0, 0), k, points);
                return points;
        }
       
        public void helper(Point point, int k, HashSet<Point> points) {
                if(!isSnapPoint(point, k)) return;
                points.add(point);
                Point left = new Point(point.x - 1, point.y);
                if (!points.contains(left)) helper(left, k, points);
                Point right = new Point(point.x + 1, point.y);
                if (!points.contains(right)) helper(right, k, points);
                Point upper = new Point(point.x, point.y + 1);
                if (!points.contains(upper)) helper(upper, k, points);
                Point lower = new Point(point.x, point.y - 1);
                if (!points.contains(lower)) helper(lower, k, points);
        }
       
        public class Point {
                public int x, y;
                public Point(int x, int y) {
                        this.x = x;
                        this.y = y;
                }
               
                public boolean equals(Object point) {
                if (!(point instanceof Point)) {
                    return false;
                }
                        Point p = (Point) point;
                        return this.x == p.x && this.y == p.y;
                }
               
                public int hashCode() {
                     return (x + " " + y).hashCode();
                }
        }
回复

使用道具 举报

🔗
kelvinzhong 2015-10-6 07:22:31 | 只看该作者
全局:
这个是坐标系? 如果只能consist of k-snap, (0,0)本身就是 0-snap, 不就k只能等于0了吗?
回复

使用道具 举报

🔗
raymond12365 2015-10-23 09:08:03 | 只看该作者
全局:
kelvinzhong 发表于 2015-10-6 07:22
这个是坐标系? 如果只能consist of k-snap, (0,0)本身就是 0-snap, 不就k只能等于0了吗?

k只是一个上限而已,只要小于等于k就好,不一定要大于k
回复

使用道具 举报

🔗
bobzhang2004 2015-11-13 10:24:12 | 只看该作者
全局:
楼主DFS的时候忘了设置边界了吧?
回复

使用道具 举报

🔗
liurudahai 2016-11-4 12:51:20 | 只看该作者
全局:
bobzhang2004 发表于 2015-11-13 10:24
楼主DFS的时候忘了设置边界了吧?

看原题似乎是没有边界的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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