9.2奇安信算法笔试

给两个小时 就出两道题

好了看你们都讨论题目 我贴一下自己的解法 一共两道编程 17分钟就出来了

第一题 走楼梯 坑点是输入0的时候也要输出0 中间盲猜很多特判 甚至数据类型改成了long 最后才猜到输入0的这个条件 所以代码比较长有很多多余的内容
ac 60->80->100
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] line = sc.nextLine().trim().split("\\s+");
        if (line.length != 1) {
            System.out.println(0);
            return;
        }
        for (int i = 0; i < line[0].length(); i++) {
            if (!Character.isDigit(line[0].charAt(i))) {
                System.out.println(0);
                return;
            }
        }
        int n = Integer.parseInt(line[0]);
        if (n < 0 || n >36) {
            System.out.println(0);
            return;
        }
        if (n == 0) {
            System.out.println(0);
            return;
        }
        long[] dp = new long[n+1];
        dp[0] = 1;
        dp[1] = 1;
        for (int i = 2; i < n+1; i++) {
            dp[i] = dp[i-1] + dp[i-2];
        }
        System.out.println(dp[n]);
    }
}






第二题 就是分糖果 题意改成扌斥迁户分房了 真的是极具社会主义特[色]
public class Solution {
    /**
     *
     * @param person int整型一维数组
     * @return int整型
     */
    public int house (int[] person) {
        // write code here
        int n = person.length;
        int[] houses = new int[n];
        Arrays.fill(houses, 1);
        for (int i = 1; i < n; i++) {
            if (person[i] > person[i-1] && houses[i] <= houses[i-1]) {
                houses[i] = houses[i-1]+1;
            }
        }
        for (int i = n-2; i >= 0 ; i--) {
            if (person[i] > person[i+1] && houses[i] <= houses[i+1]) {
                houses[i] = houses[i+1]+1;
            }
        }
        int sum = 0;
        for (int i = 0; i < n; i++) {
            sum += houses[i];
        }
        return sum;
    }
}


#笔试题目##奇安信#
全部评论
服务端 20道单选 10道多选 2道编程  编程应该和你们一样的
2 回复 分享
发布于 2020-09-02 16:06
547856 对应 212312
1 回复 分享
发布于 2020-09-02 16:34
    int house(int* person, int personLen) {         // write code here         int index = 0;         vector<int> res(personLen, 0);         while (index + 1 < personLen) {          // 降序过程          int num = 1;          int startIndex = index;          while (index + 1 < personLen && person[index] > person[index + 1]) {          ++num;          ++index;          }          res[startIndex] = max(res[startIndex], num--);          for (int i = startIndex + 1; i <= index; ++i) {          res[i] = num--;          }          // 升序过程          num = 1;          while (index + 1 < personLen && person[index] < person[index + 1]) {          res[++index] = ++num;          }          // 相同          while (index + 1 < personLen && person[index] == person[index + 1]) {          res[++index] = 1;          }         }         return accumulate(res.begin(), res.end(), 0);     }
点赞 回复 分享
发布于 2020-09-02 16:40
分享一下代码
点赞 回复 分享
发布于 2020-09-02 16:32
安全岗,也是2个编程,第二道住户分房一开始0.8,后来想到45765这种减了重复过了。
点赞 回复 分享
发布于 2020-09-02 16:14
一共就两道编程题吧     是不是没有选择,我应该没有漏答吧
点赞 回复 分享
发布于 2020-09-02 16:03
第二题 一共就5个数 直接手动推,就推出来了
点赞 回复 分享
发布于 2020-09-02 15:57
第二图啥思路唉
点赞 回复 分享
发布于 2020-09-02 15:46
挺无语的
点赞 回复 分享
发布于 2020-09-02 15:45
第二题思路
点赞 回复 分享
发布于 2020-09-02 15:44

相关推荐

不愿透露姓名的神秘牛友
05-13 14:16
战争学院:你妈妈第一反应是骗子,我妈妈第一反应是培训贷,全国家长系统是统一的吗哈哈哈
点赞 评论 收藏
分享
1.&nbsp;自我介绍2.&nbsp;项目都是自己写的吗?3.&nbsp;我看你用&nbsp;koa2&nbsp;写后端,为什么选择它,能讲讲吗?4.&nbsp;那你提到&nbsp;koa2&nbsp;它是不提供中间件的,你是怎么解决的?5.&nbsp;中间件的原理是什么?(洋葱模型)6.&nbsp;你刚刚说碰到&nbsp;next()&nbsp;就进入下一个中间件,那&nbsp;next&nbsp;只能执行同步,如果是异步的话,你是怎么处理的?(async/await,但是我发现,有的中间件需要在异步中间件之前执行,所以我用&nbsp;try/catch&nbsp;来处理异步中间件的异常)7.&nbsp;JS&nbsp;异步发展史,以及它们的优缺点说一下&nbsp;(回调函数--Promise--Generator--async/await)8.&nbsp;你刚刚说&nbsp;Promise&nbsp;状态不能更改,那如果我要设计一个能修改&nbsp;Promise&nbsp;状态的函数,你会怎么设计?9.&nbsp;CSS&nbsp;水平垂直居中的方法(flex、grid、绝对定位&nbsp;+&nbsp;margin:auto、绝对定位&nbsp;+&nbsp;负&nbsp;margin、绝对定位&nbsp;+&nbsp;transform、table-cell)10.&nbsp;你刚刚说到&nbsp;flex&nbsp;布局,那&nbsp;flex:1&nbsp;是什么意思?(flex:&nbsp;flex-grow&nbsp;&nbsp;flex-shrink&nbsp;&nbsp;flex-basis;等价&nbsp;flex:1&nbsp;1&nbsp;0%表示元素可以均分剩余空间,可拉伸、可压缩,不依赖内容宽度,自动自适应填充布局。)11.&nbsp;父容器宽是&nbsp;500px,然后它左右各有两个子容器是&nbsp;100px,如果设置&nbsp;flex:&nbsp;1,那它的宽度是多少?(500-100-100=300px)12.&nbsp;说说你对浏览器缓存的理解(强缓存、协商缓存)13.&nbsp;如果一个用户,他怎么去刷新都无法刷到最新版的代码,你能说下可能的原因吗?(版本号、hash等)还有吗?(我说我不知道了,面试官说还有&nbsp;CDN&nbsp;没有同步,我说企业才会这么干,自己写项目一般不会,我知道&nbsp;cdn&nbsp;是用来解决高并发的手段)14.&nbsp;React你熟吗?说下&nbsp;React&nbsp;函数组件和类组件的区别15.&nbsp;怎么避免&nbsp;Hooks&nbsp;导致组件重新渲染?(使用&nbsp;useCallback、useMemo、React.memo、useRef等等)16.&nbsp;谈一下我对&nbsp;React&nbsp;的状态管理的理解(Redux、Mobx、Zustand,我说&nbsp;Zustand&nbsp;用的最多)17.&nbsp;React&nbsp;常见的&nbsp;hooks&nbsp;有哪些?(useState、useEffect、useRef、useCallback、useMemo、useReducer、useContext、useImperativeHandle、useLayoutEffect、useDebugValue)18.&nbsp;TS&nbsp;你熟吗?我们引进&nbsp;TS&nbsp;的目的是为什么?19.&nbsp;interface&nbsp;和&nbsp;type&nbsp;的区别20.&nbsp;说下&nbsp;TS&nbsp;里的泛型21.&nbsp;我现在有十个字段,比如十个字段就要&nbsp;A&nbsp;B&nbsp;C&nbsp;D&nbsp;E&nbsp;F&nbsp;G&nbsp;这种。那我现在另有另外一个方法,这个方法接受的参数呢,必须是这个&nbsp;interface&nbsp;A&nbsp;里面的这个&nbsp;K。就比如说你可以是&nbsp;A&nbsp;B&nbsp;C&nbsp;可以&nbsp;A&nbsp;B&nbsp;C&nbsp;D&nbsp;任何组合都可以,但是必须是这个&nbsp;interface&nbsp;里面的&nbsp;A&nbsp;里面的定义的。这个&nbsp;K&nbsp;这种类型的话是怎么去定义呢?(说实话我有点不太理解啥意思,反正我说了&nbsp;keyof)```&nbsp;TypeScriptinterface&nbsp;Obj&nbsp;{A:&nbsp;stringB:&nbsp;stringC:&nbsp;stringD:&nbsp;stringE:&nbsp;string//&nbsp;其他字段...}```22.&nbsp;vite&nbsp;用过吗?说说和&nbsp;webpack&nbsp;的区别。vite&nbsp;的优缺点是什么23.&nbsp;说说&nbsp;Tree&nbsp;shaking(树摇)&nbsp;和&nbsp;Code&nbsp;Splitting&nbsp;(代码分割)的区别24.&nbsp;Git&nbsp;你熟吗?说说&nbsp;git&nbsp;merge&nbsp;和&nbsp;git&nbsp;rebase&nbsp;的区别,什么时候用&nbsp;git&nbsp;merge,什么时候用&nbsp;git&nbsp;rebase?25.&nbsp;web3&nbsp;你熟吗?(不太熟,听说过而已)26.&nbsp;我看你自我介绍说了&nbsp;AI,你是怎么用的?27.&nbsp;除了提示词,还有什么能让&nbsp;AI&nbsp;更聪明?28.&nbsp;AI&nbsp;的优缺点你说一下29.&nbsp;AI&nbsp;发展这么快,你觉得我们以后会扮演什么角色?30.&nbsp;反问基本都答上来了。面了我80分钟,我还以为稳过的
牛客41451791...:我的妈呀技术岗好吓人
查看29道真题和解析
点赞 评论 收藏
分享
评论
1
3
分享

创作者周榜

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