l****o 发帖数: 135 | 1 一般来说,如果合并两个有序数组,合并后的数组应该怎么返回?
1.覆盖其中一个数组A和m (假设A足够大)
void mergeArray(int A[], int m, int B[], int n)
2.用第三个数组返回
void mergeArray(int A[], int m, int B[], int n, int C[], int k)
3.返回整数指针指向使用malloc分配的int* (容易造成内存泄露?)
int* mergeArray(int A[], int m, int B[], int n)
4.使用vector
void mergeArray(const vector& A, const vector& B, vector& C)
大家如果面试时候要求写代码,一般写哪一种? | g*********s 发帖数: 1782 | 2 the following two:
merge(const vector&A, const vector& B, vector& C);
inplace_merge(vector&A, const vector& B);
【在 l****o 的大作中提到】 : 一般来说,如果合并两个有序数组,合并后的数组应该怎么返回? : 1.覆盖其中一个数组A和m (假设A足够大) : void mergeArray(int A[], int m, int B[], int n) : 2.用第三个数组返回 : void mergeArray(int A[], int m, int B[], int n, int C[], int k) : 3.返回整数指针指向使用malloc分配的int* (容易造成内存泄露?) : int* mergeArray(int A[], int m, int B[], int n) : 4.使用vector : void mergeArray(const vector& A, const vector& B, vector& C) : 大家如果面试时候要求写代码,一般写哪一种?
| l****o 发帖数: 135 | 3 如果要求用C语言写呢?
【在 g*********s 的大作中提到】 : the following two: : merge(const vector&A, const vector& B, vector& C); : inplace_merge(vector&A, const vector& B);
| i**9 发帖数: 351 | 4 面试的时候不用考虑那么细,可以开个dynamic array, 不放心可以问一下interviewer
给个 function interface | G*********o 发帖数: 2045 | 5 4 sounds about right
【在 l****o 的大作中提到】 : 一般来说,如果合并两个有序数组,合并后的数组应该怎么返回? : 1.覆盖其中一个数组A和m (假设A足够大) : void mergeArray(int A[], int m, int B[], int n) : 2.用第三个数组返回 : void mergeArray(int A[], int m, int B[], int n, int C[], int k) : 3.返回整数指针指向使用malloc分配的int* (容易造成内存泄露?) : int* mergeArray(int A[], int m, int B[], int n) : 4.使用vector : void mergeArray(const vector& A, const vector& B, vector& C) : 大家如果面试时候要求写代码,一般写哪一种?
|
|