【社招】百度一面

前文:

①感觉她是不是在看着题库出题啊,每次我说完了等她的反应都很慢;

②她是不是对我不感兴趣啊,业务和项目都没有深挖,我主要负责的也没有深挖

1.自我介绍

2.项目介绍(但不是我主要负责的,而是跟mt的)

3.Java熟悉一些对吧?Java创建线程有哪些方式?

4.Java的线程和进程的区别?

5.HTTPS和HTTP的区别

(心想:这是在校招?怎么全是计算机基础)

6.equals和==的区别,什么时候用equals,可以举个例子吗

==是地址,equals是值,往往需要重写hashCode方法

7.场景题:百度app的搜索功能设计用例

因为我没用过百度app,换成:安卓机下,抽奖功能如何设计测试用例

8.做个题吧:

nums = {1, 2, 2, 3, 4, 4, 5}; k=9

求能够总和构成k的子数组有多少个?(不用去重,子数组不用连续)

①DFS

public class Main {
    public static int res = 0, len = 0, k=0;
    public static int[] nums;

    public static void dfs(int status, int sum) {
        System.out.println("status: " + status + ", sum: " + sum);
        if(sum==k){
            res+=1;
            return;
        }
        if(status>=len || sum>k) return;
        dfs(status+1,sum);//不选
        dfs(status+1,sum+nums[status]);//选
    }

    public static void main(String[] args) {
        nums = new int[]{1, 4, 5};
        len = nums.length;
        k = 9;
        dfs(0,0);
        System.out.println(res);
    }
}

②DP

public class Main {

    public static void main(String[] args) {
        int[] nums = {1, 4, 5};//假设都是正数的话
        int len = nums.length;
        int k = 9;
        int[] dp = new int[k + 1];
        dp[0] = 1;

        for(int i=0;i<len;i++) {
            for(int j=k;j>=0;j--) {
                if(dp[j]>0 && j + nums[i] <= k) {
                    dp[j+nums[i]]+=1;
                }
            }
        }
        System.out.println(dp[k]);
    }
}

好气啊!!!!! 因为java写dfs、bfs写的少了,逻辑什么的都是对的,但是用状态压缩的时候if((a&b)==0)的内层括号忘记加了,还有各种一些调试上的问题最后跑都没跑通,气的想锤死自己

8.安卓发生崩溃(Crash)的时候怎么输出日志

adb logcat -d > logcat.txt

追问:如果要看包含error的有几行,怎么看?

grep -c "error" logcat.txt

#牛客创作赏金赛#
全部评论
接口自动化的流程: ①需求分析和评审,评估哪些接口算重要的,需要被覆盖的 ②写测试计划:把控接口自动化完成的节奏,每周完成多少 ③写测试脚本,从开发那里拿源码,便于快速造数 ④执行测试用例,测试环境和线上环境都运行 ⑤输出测试报告,因为是自动化,这里都是全自动的 ⑥缺陷的管理和回归,报告有bug需要录入缺陷管理平台,开发维修好后需要及时回归
1 回复 分享
发布于 06-19 11:29 上海
一些稍微高级一些又常见的linux命令: 1.查看crash:cat xx.log | grep crash 2.top查看cpu利用率 3.netstat -tuln | grep ":3306",可以查看端口号3306是否被占用(也可以换成别的) 4.查找并杀掉某个进程: ①查找:ps | grep mysql,可以找到mysql进程的pid,第一个就是 ②杀进程:kill -9
点赞 回复 分享
发布于 06-19 11:26 上海
用java写递归真的太少了,缺乏经验,逻辑是错的,语法也不对,后面要使劲补一补
点赞 回复 分享
发布于 06-19 00:04 上海

相关推荐

小鹏面试&nbsp;1.&nbsp;一个线程中执行的任务如何确保顺序执行;2.&nbsp;binder无参调用如何知道client是谁;3.anr是如何分析的;中教云写一个api能够访问所有制定类型的文件中教云二面;TCP三次握手四次回收,线程死锁;实现O(1)复杂度的LRU最近最久未使用DNS如何解析域名访问一个网站的过程美团外卖一面1.&nbsp;进程和线程的区别;2.&nbsp;死锁的概念,如何预防死锁;3.&nbsp;onnewInent什么时候调用如果在&nbsp;AndroidManifest.xml&nbsp;中,将&nbsp;Activity&nbsp;的&nbsp;launchMode&nbsp;设置成了&nbsp;“singleTop”&nbsp;模式,或者在调用&nbsp;startActivity(Intent)&nbsp;时,设置了FLAG_ACTIVITY_SINGLE_TOP标识,那么,当该&nbsp;Activity&nbsp;再次被启动时,如果它依然存在于Activity栈中,并且刚好处于栈的最顶层时,那么它将不会被重新创建,而是直接使用原来的实例,此时,onNewIntent(Intent)将会被调用,后续生命周期中的其它方法,就可以使用&nbsp;onNewIntent(Intent)传递过来的新的Intent参数了。也就是说,调用顺序如下:onNewIntent()&nbsp;-&gt;&nbsp;onRestart()&nbsp;-&gt;&nbsp;onStart()&nbsp;-&gt;&nbsp;onResume()activity栈唯一(singleTask)原则下,通过Intent启动一个Activity,如果系统已经存在一个实例,系统就会将请求发送到这个实例上,但这个时候,系统就不会再创建一个新的实例,不会调用onCreate方法,而是调用onNewIntent方法4.&nbsp;RecyclerView&nbsp;如何区分header和footer5.&nbsp;跨进程通信的方式有哪些6.hashmap的底层原理,不安全的原因,如何确保安全支付宝一面1.http和https区别2.安卓的安全机制有哪些;3.安卓的art虚拟机;4.安卓的启动流程有哪几个阶段;5.手机按下电源键启动内核;6.Linux启动模型;7.网络如何确保安全,如何确保秘钥的正确性;8.网络层次的七层结构;9.Socket位于哪一层;10.内存溢出;11.热修复方案;
查看25道真题和解析
点赞 评论 收藏
分享
评论
2
4
分享

创作者周榜

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