途虎养车一、二、hr面
一面
1.手撸代码:合并两个有序数组
给定一个有序的整数数组A和有序整数数组B,请将数组B合并到数组A中,变成一个有序的升序数组
注意:
1.可以假设A数组有足够的空间存放B数组的元素,A和B中初试的元素数目分别为m和n,A的数组空间大小为m+n
2.不要返回合并的数组,返回是空的,将数组B的数据合并到A里面就好了
3.A数组在[0,m-1]的范围也是有序的
例1:
A:[4,5,6,0,0,0], m=3
B:[1,2,3], n=3
合并过后A为:
A:[1,2,3,4,5,6]
我的思路:
我一开始的思路是,把A作为模板,循环B,然后把B插入,双重for循环
经过面试官提示:A和B数组本来就是有序的,那样做效率低,重新考虑
然后想到:用两个指针,同时向下找,然后判断当前指针下的A[i],B[j]大小,然后大的放入A中,继续向下找
最后代码实现
package com.lxw.demo;
import java.util.Arrays;
/**
* 合并两个有序数组
*/
public class Demo08 {
public static void main(String[] args) {
int[] a = {4,5,6,0,0,0};
int m = 3;
int[] b = {1,2,3};
int n = 3;
merge(a,m,b,n);
System.out.println(Arrays.toString(a));
}
public static void merge(int A[], int m, int B[], int n){
int all = m+n-1;
int i = m-1;
int j = n-1;
while(i>=0&&j>=0){
if (A[i] < B[i]){
A[all--] = B[j--];
}else{
A[all--] = A[i--];
}
}
while(j>=0){
A[all--] = B[j--];
}
}
}
2.自我介绍
3.深挖项目
4.spring Ioc和AOP
5.spring bean的生命周期
6.ES的倒排索引
7.mysql的聚簇索引
8.事务ACID
9.InnoDB事务隔离级别
10.事务有哪几个隔离级别
11.幻读
二面
深挖项目
后端接口暴露,怎么处理
三面hr
20多年的人生中做过最大(印象最深)的决定(人生选择)
项目中遇到的困难,解决
为什么不考研
将来的规划
评论区