当前位置:网站首页>记一次某公司面试题:合并有序数组
记一次某公司面试题:合并有序数组
2022-07-06 09:13:00 【三笠·阿卡曼】
来源
2021/09/24:接到某公司面试,手撕一到合并有序数组的题,当时做的差不多了,面试官时间给的相对短了一些,临界值处理有问题, 没完全写出来有些遗憾,不过至少自己思路没错,参考网上给出的资料,现整理出一个比较好的解决方式,自己也只是写了一点测试用例,若有错误,烦请指正!
具体题目不讲了,就看题目标题吧
上代码
package com.vleus.algorithm.strings;
import java.util.Arrays;
/** * @author vleus * @date 2021年09月24日 19:50 */
public class Solution {
//两个有序数组,合并成一个有序数组,要求时间复杂度为O(n)
public static int[] getNewArr(int[] arr1, int[] arr2) {
if (arr1.length == 0) {
return arr2;
}
if (arr2.length == 0) {
return arr1;
}
int i = 0;
int j = 0;
int[] newArr = new int[arr1.length + arr2.length];
for (int k = 0; k < newArr.length; k++) {
if (arr1[i] < arr2[j] && i <= arr1.length - 1) {
newArr[k] = arr1[i];
i++;
continue;
}
if (arr1[i] >= arr2[j] && j <= arr2.length - 1) {
newArr[k] = arr2[j];
j++;
continue;
}
}
return newArr;
}
public static int[] getNewArr2(int[] arr1, int[] arr2) {
int i = arr1.length + arr2.length - 1;
int i1 = arr1.length - 1;
int i2 = arr2.length - 1;
int[] newArr = new int[arr1.length+arr2.length];
while (i1 >= 0 && i2 >= 0) {
if (arr1[i1] >= arr2[i2]) {
newArr[i] = arr1[i1];
i1--;
i--;
}else{
newArr[i] = arr2[i2];
i2--;
i--;
}
}
if(i1 >= 0){
System.arraycopy(arr1,0,newArr,i1,i1+1);
}
if (i2 >= 0) {
System.arraycopy(arr2,0,newArr,i2,i2+1);
}
return newArr;
}
public static void main(String[] args) {
int[] arr1 = new int[]{
1, 3, 5, 7, 7, 8,12};
int[] arr2 = new int[]{
2, 4, 6, 8, 8};
int[] newArr2 = getNewArr2(arr1, arr2);
System.out.println(Arrays.toString(newArr2));
}
}
边栏推荐
- Ansible实战系列三 _ task常用命令
- 35 is not a stumbling block in the career of programmers
- Solution: log4j:warn please initialize the log4j system properly
- Copy constructor template and copy assignment operator template
- MNIST implementation using pytoch in jupyter notebook
- MySQL24-索引的数据结构
- Postman Interface Association
- MySQL22-逻辑架构
- Moteur de stockage mysql23
- [paper reading notes] - cryptographic analysis of short RSA secret exponents
猜你喜欢

Opencv uses freetype to display Chinese

Mysql27 index optimization and query optimization
![[reading notes] rewards efficient and privacy preserving federated deep learning](/img/c3/5e88277b5024885d5ceeaa0de14b27.jpg)
[reading notes] rewards efficient and privacy preserving federated deep learning

CSDN question and answer tag skill tree (I) -- Construction of basic framework

MySQL27-索引优化与查询优化

MySQL21-用户与权限管理

Swagger、Yapi接口管理服务_SE

MySQL36-数据库备份与恢复

A trip to Macao - > see the world from a non line city to Macao
![[recommended by bloggers] C # generate a good-looking QR code (with source code)](/img/5a/1dbafe5a28f016b815964b9b37c9f1.jpg)
[recommended by bloggers] C # generate a good-looking QR code (with source code)
随机推荐
MySQL29-数据库其它调优策略
Solve the problem that XML, YML and properties file configurations cannot be scanned
A brief introduction to the microservice technology stack, the introduction and use of Eureka and ribbon
[C language] deeply analyze the underlying principle of data storage
MySQL27-索引優化與查詢優化
API learning of OpenGL (2003) gl_ TEXTURE_ WRAP_ S GL_ TEXTURE_ WRAP_ T
C语言标准的发展
Bytetrack: multi object tracking by associating every detection box paper reading notes ()
虚拟机Ping通主机,主机Ping不通虚拟机
Esp8266 at+cipstart= "", "", 8080 error closed ultimate solution
MySQL23-存储引擎
February 13, 2022-3-middle order traversal of binary tree
Installation and use of MySQL under MySQL 19 Linux
Kubernetes - problems and Solutions
CSDN问答标签技能树(二) —— 效果优化
frp内网穿透那些事
MySQL 29 other database tuning strategies
Copie maître - esclave MySQL, séparation lecture - écriture
CSDN markdown editor
Adaptive Bezier curve network for real-time end-to-end text recognition