百度测开一面
大概记得这么些,问题大多会往项目上问,问你在项目中负责的什么,然后根据负责的板块提问,我负责的数据库(问的比较多),编程都是剑指offer和leetcode原题多刷多做就好。
编程思路:1、找数组第k小数(快排!!!很多面试都会涉及到快排,尽量掌握!)
(1)快排函数:以数组第一个值为基准值v,利用快排将数组分成两部分,小于v的在左边,大于v在右边;
(2)一趟快排后分为左边,中间分界数和右边;
设左边元素个数为nleft分三种情况:
1、nleft = k-1,k刚好是第k小的数;
2、nleft > k-1,第k小数包含在左边,
3、nleft < k-1,第k小数包含在右边,问题变成了找 k - 1 - nleft小的数,注意此时数组开始的数下标为为 nleft + 1;
问题变形:1、找第k大的数;2、找最大值和最小值(同时找最大最小值);3、找中位数(第n/2小);4、top-K问题
2、确定字符串为是否为合法的PV4地址:(IPV4 特点:132.1.33.2,四位,每一位之间用 . 分割,每一位的规范是0-255,即0.0.0.0-255.255.255.255之间)
(1)将当前字符串分割为字符数组(注意分隔符 . ,需要转义成 \\. )
(2) 然后判断每一位范围是否在0-255间,如果在,判断是否当前字符以0结尾同时不是第一位(如:02.22.22.22是不合法IPV4地址)