当前位置:网站首页>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));
}
}
边栏推荐
- Global and Chinese market of operational amplifier 2022-2028: Research Report on technology, participants, trends, market size and share
- Kubernetes - problems and Solutions
- SSM整合笔记通俗易懂版
- 记一次某公司面试题:合并有序数组
- Global and Chinese markets of static transfer switches (STS) 2022-2028: Research Report on technology, participants, trends, market size and share
- Other new features of mysql18-mysql8
- Mysql23 storage engine
- Global and Chinese market of thermal mixers 2022-2028: Research Report on technology, participants, trends, market size and share
- Detailed reading of stereo r-cnn paper -- Experiment: detailed explanation and result analysis
- 【博主推荐】C#生成好看的二维码(附源码)
猜你喜欢
Mysql27 index optimization and query optimization
解决:log4j:WARN Please initialize the log4j system properly.
windows无法启动MYSQL服务(位于本地计算机)错误1067进程意外终止
Postman environment variable settings
Some problems in the development of unity3d upgraded 2020 VR
Swagger、Yapi接口管理服务_SE
MySQL31-MySQL事务日志
CSDN-NLP:基于技能树和弱监督学习的博文难度等级分类 (一)
Windows cannot start the MySQL service (located on the local computer) error 1067 the process terminated unexpectedly
MySQL21-用户与权限管理
随机推荐
Installation and use of MySQL under MySQL 19 Linux
Copy constructor template and copy assignment operator template
MySQL29-数据库其它调优策略
Csdn-nlp: difficulty level classification of blog posts based on skill tree and weak supervised learning (I)
Development of C language standard
Mysql21 - gestion des utilisateurs et des droits
Moteur de stockage mysql23
【博主推荐】C# Winform定时发送邮箱(附源码)
@controller,@service,@repository,@component区别
MySQL28-数据库的设计规范
MySQL flush operation
CSDN question and answer tag skill tree (II) -- effect optimization
MySQL22-逻辑架构
La table d'exportation Navicat génère un fichier PDM
Mysql34 other database logs
MySQL30-事务基础知识
Postman environment variable settings
Pytoch LSTM implementation process (visual version)
Redis的基础使用
[recommended by bloggers] background management system of SSM framework (with source code)