2018旷视面试

一、数字组合

给定一个数组a,其中元素各不相同且都是0~9之间的数字。
给定一个数字n,要求用数组a中的数组组合出一个大于n的十进制数字来,要求组合出来的数字尽量少,数组a中的元素可以使用多次。

关键点:

  • 大于n

这个问题没想到需要扫描两遍,扫描一遍只能得到等于n的数字。

import java.util.*;
import java.util.stream.Collectors;

public class Main {
Random r = new Random(0);

int[] generate() {

    int[] b = new int[10];
    for (int i = 0; i < b.length; i++) b[i] = i;
    for (int i = 0; i < b.length; i++) {
        int nex = r.nextInt(b.length - i) + i;
        int temp = b[i];
        b[i] = b[nex];
        b[nex] = temp;
    }
    return Arrays.copyOf(b, r.nextInt(5) + 2);
}

List<Integer> parse(int n) {
    List<Integer> a = new ArrayList<>(11);
    while (n > 0) {
        a.add(n % 10);
        n /= 10;
    }
    for (int i = 0; i < a.size() / 2; i++) {
        int temp = a.get(i);
        a.set(i, a.get(a.size() - 1 - i));
        a.set(a.size() - 1 - i, temp);
    }
    return a;
}

int upper_eq(List<Integer> a, int x) {
    int l = 0, r = a.size();
    while (l + 1 < r) {
        int mid = (l + r) >> 1;
        if (a.get(mid) < x) {
            l = mid;
        } else if (a.get(mid) >= x) {
            r = mid;
        }
    }
    return a.get(r);
}

int upper(List<Integer> a, int x) {
    int l = 0, r = a.size();
    while (l + 1 < r) {
        int mid = (l + r) >> 1;
        if (a.get(mid) <= x) {
            l = mid;
        } else if (a.get(mid) > x) {
            r = mid;
        }
    }
    return r;
}

int pack(List<Integer> a) {
    int s = 0;
    for (int i : a) {
        s = s * 10 + i;
    }
    return s;
}

int solve(int a[], int n) {
    if (a.length == 0) return -1;
    if (a.length == 1 && a[0] == 0) return -1;
    List<Integer> arr = new ArrayList<>(a.length + 1);
    for (int anA : a) arr.add(anA);
    arr.sort(Comparator.comparing(x -> x));
    int first = arr.get(0) == 0 ? arr.get(1) * 10 : arr.get(0) * 10 + arr.get(0);
    arr.add(first);
    List<Integer> bits = parse(n);
    boolean flag = false;
    for (int i = 0; i < bits.size(); i++) {
        if (flag) {
            bits.set(i, arr.get(0));
        } else {
            int x = upper_eq(arr, bits.get(i));
            if (x != bits.get(i)) {
                flag = true;
            }
            bits.set(i, x);
        }
    }
    for (int i = bits.size() - 1; i >= 0 && !flag; i--) {
        int x = upper(arr, bits.get(i));
        if (x < 10) {
            flag = true;
            bits.set(i, x);
        }
    }
    if (!flag) {
        bits.set(0, arr.get(arr.size() - 1));
    }
    return pack(bits);
}

String tos(int[] a) {
    return "[" + Arrays.stream(a).mapToObj(x -> x + "").collect(Collectors.joining(",")) + "]";
}

Main() {
    for (int i = 0; i < 10; i++) {
        int[] a = generate();
        int n = r.nextInt(10000000);
        System.out.println(tos(a) + " " + n + " " + solve(a, n));
    }
}

public static void main(String[] args) {
    new Main();
}
}

二、max(x,y)的期望

已知x和y都是0到1上的均匀分布,求max(x,y)的期望。

$\int_{0}^{1} 1-m^2 dm=\frac{2}{3}$

$m^2$表示当x<mx<m的概率,用1减去它表示max(x,y)不小于m的概率。

import java.util.*;
import java.util.stream.Collectors;

public class Main {
Random r = new Random(0);

Main() {
    double s = 0;
    int cnt = 0;
    for (int i = 0; i < 10000; i++) {
        double x = r.nextDouble(), y = r.nextDouble();
        s += Math.max(x, y);
        cnt++;
    }
    System.out.println(s / cnt);
}

public static void main(String[] args) {
    new Main();
}
}

原文地址:https://www.cnblogs.com/weiyinfu/p/9627459.html

时间: 2024-08-29 11:45:16

2018旷视面试的相关文章

ECCV 2018 | 旷视科技提出统一感知解析网络UPerNet,优化场景理解

全球计算机视觉三大顶会之一 ECCV 2018(European Conference on Computer Vision)即将于 9 月 8 -14 日在德国慕尼黑拉开帷幕.届时,旷视首席科学家孙剑博士将带领团队远赴盛会,助力计算机视觉技术的交流与落地.本文介绍了旷视科技被 ECCV 2018 所接收的一篇论文,该论文提出了一种用于场景理解的统一感知解析网络--UPerNet. 论文名称:<Unified Perceptual Parsing for Scene Understanding>

旷视俞刚跳槽腾讯:曾多次带队夺冠COCO,称看好腾讯的应用场景

昨天晚上,有同学在新智元小程序曝出一则惊人消息:旷视大佬俞刚加盟腾讯 PCG 光影研究室,引发不少吃瓜群众热议:  这则消息最早是在知乎曝出的,有网友提问:如何看待旷视 detection 组组长俞刚跳槽腾讯 PCG 光影研究室? 目前这个问题已经被浏览了超过 50 万次,可见关注度还是蛮高的.其中,一条"元峰"的回答获得高赞.他表示自己同在 CV 融资四小龙工作,且即将离职,并分享了自己的感想.他表示:前几年一套人脸识别算法能卖上千万,现在只有 40 万了.他还谈到了 AI 创业公司

主宰尖端技术产业升级,旷视剑指世界第一

近日,国内人工智能公司旷视科技(Face++)完成约为 4.6 亿美元的C 轮融资,由中国国有资本风险投资基金领投,蚂蚁金服.富士康集团战略投资,中俄基金.阳光保险集团.SK集团.渤海华美等参投,刷新了人工智能领域的投资记录.对拥有核心刷脸识别技术的旷视科技来说,这一轮巨额融资的完成也代表着其刷脸识别技术将加速延展至更多企业和行业,得到更为广泛的运用. 巨额融资背后是旷视深厚的AI技术内功 在刚刚结束的全球顶级计算机视觉竞赛MS COCO和Places中,旷视科技的团队击败微软谷歌和Facebo

2018百度校招面试总结

2018百度校招面试总结 目前走流程到二面, 写一波面经希望能够收到三面通知, 上天请赐予我运气和力量吧: 校招走流程的两个面试官都很nice, 比较随和, 面试体验非常好; 百度一面 在酒店一楼等面试官通知, 叫到名字就坐电梯去对应房间号面试; 交完简历, 面试官会安静的浏览简历(这时候比较尴尬, 只有静静的等), 然后面试官会让你简单的自我介绍; 面试官后面会对感兴趣的项目进行细节询问, 大致包括: 解决一个什么问题; 项目的背景; 数据处理流程; 大概的项目框架; 自己对整个项目的理解;

2018年前端面试总结

2018年前端面试总结 再有两个月,2018就快过完了,因而有必要在年末对2018年的前端学习做一个总结,本文主要从前端面试中的一些基础知识来对前端进行相关的总结.本文根据网络面试题进行总结. 基础知识 本部分主要从以下几个方面来回顾前端相关的基础知识: HTML相关 CSS相关 JAVASCRIPT相关 DOM相关 HTTP相关 webpack相关 Html html 根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解

「杂谈」旷视科技新产品监视学生上课不是什么好事儿

旷视科技新产品监视学生上课不是什么好事儿! 9月2号,一张带有"MEGVII旷视"图标的视频监控图像在社交网络上疯传. 图中显示,两名在教室中的女生身边,显示出了相应的课堂行为数据,比如趴桌子.玩手机.睡觉.听讲.阅读.举手等等.伴随这张图,还有大量网友严厉的指责与质疑,认为这样的技术不应该出现在课堂中. 对于旷世科技公司的这种所谓的人工智能高科技视频监控技术进入课堂的做法或者说是想法,笔者观点鲜明:反对,反对这种无节操无底线完全不顾学生隐私的人工智能技术的做法.这是为了发展人工智能而

2018年 Python面试必看的10个问题及答案

最近开始整理python的资料,博主建立了一个qq群,希望给大家提供一个交流的同平台 938587844 . 找工作是每个学习Python人员的目标,为了更好的找到工作,刷面试题是必不可少的,了解最新企业招聘试题,可以让你面试更加的顺利.小编整理了一些2018年最新的Python面试题,来测测你技术的掌握度吧. 1.Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别) 答:赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个. 浅拷贝:创建一个新的对象,但它

[刘阳Java]_美团点评2018届校招面试总结_Java后台开发【转载】

美团喜欢一口气把三轮技术面和HR面一起面完,虽然身心比较累(每一面差不多一个小时),不过也算是一个好事,不像某些公司一天就一面然后让回去等消息,等面试通知也等得让人很焦虑,而且还容易出现面试时间冲突. 一面 1.比较LinkedList.ArrayList的区别,分别适用于什么场景 2.Synchronized关键字和ReentrantLock的区别 3.用过哪些线程池,ThreadPoolExecutor的参数含义 4.什么是悲观锁和乐观锁,乐观锁的实现原理 5.计算机网络中OSI七层模型每一

2018.5.28面试经验

1.斐波那契数列. 求第30个0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368-- public class FeiBo{ public static void main(String[] args) { int num1=0; int num2=1; int numn=1; int n=10; for (int i = 3; i <=