当前位置:网站首页>Remember a company interview question: merge ordered arrays
Remember a company interview question: merge ordered arrays
2022-07-06 11:00:00 【Sanli akaman】
source
2021/09/24: Received an interview from a company , Tear one by hand to the problem of merging ordered arrays , At that time, it was almost done , The time given by the interviewer is relatively short , There is a problem with the critical value processing , It's a pity that I didn't write it out completely , But at least I have the right idea , Refer to the information on the Internet , Now we have sorted out a better solution , I just wrote some test cases , If there is an error , Please correct me !
No more specific topics , Just look at the title
Code up
package com.vleus.algorithm.strings;
import java.util.Arrays;
/** * @author vleus * @date 2021 year 09 month 24 Japan 19:50 */
public class Solution {
// Two ordered arrays , Merge into an ordered array , The required time complexity is 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));
}
}
边栏推荐
- Postman environment variable settings
- JDBC原理
- [paper reading notes] - cryptographic analysis of short RSA secret exponents
- February 13, 2022 - Maximum subarray and
- CSDN问答标签技能树(五) —— 云原生技能树
- The virtual machine Ping is connected to the host, and the host Ping is not connected to the virtual machine
- IDEA 导入导出 settings 设置文件
- Navicat 导出表生成PDM文件
- 【博主推荐】C# Winform定时发送邮箱(附源码)
- Windchill configure remote Oracle database connection
猜你喜欢
MySQL 29 other database tuning strategies
Copie maître - esclave MySQL, séparation lecture - écriture
windows无法启动MYSQL服务(位于本地计算机)错误1067进程意外终止
MySQL主从复制、读写分离
Case identification based on pytoch pulmonary infection (using RESNET network structure)
MySQL25-索引的创建与设计原则
Navicat 导出表生成PDM文件
Pytoch LSTM implementation process (visual version)
MySQL19-Linux下MySQL的安装与使用
Some problems in the development of unity3d upgraded 2020 VR
随机推荐
frp内网穿透那些事
MySQL24-索引的数据结构
@controller,@service,@repository,@component区别
La table d'exportation Navicat génère un fichier PDM
连接MySQL数据库出现错误:2059 - authentication plugin ‘caching_sha2_password‘的解决方法
Moteur de stockage mysql23
MySQL19-Linux下MySQL的安装与使用
February 13, 2022-2-climbing stairs
MySQL22-逻辑架构
Installation and use of MySQL under MySQL 19 Linux
There are three iPhone se 2022 models in the Eurasian Economic Commission database
API learning of OpenGL (2005) gl_ MAX_ TEXTURE_ UNITS GL_ MAX_ TEXTURE_ IMAGE_ UNITS_ ARB
[BMZCTF-pwn] 12-csaw-ctf-2016-quals hungman
Valentine's Day is coming, are you still worried about eating dog food? Teach you to make a confession wall hand in hand. Express your love to the person you want
CSDN-NLP:基于技能树和弱监督学习的博文难度等级分类 (一)
Opencv uses freetype to display Chinese
Solve the problem that XML, YML and properties file configurations cannot be scanned
NPM an error NPM err code enoent NPM err syscall open
A trip to Macao - > see the world from a non line city to Macao
Pytoch LSTM implementation process (visual version)