LeetCode初级算法-搜索和排序

LeetCode的评测机貌似配置不同,同一代码多次提交会有不同的耗时且差别较大

有的简直是像打了鸡血一样跑的飞快,所以下文的“结果”看看就好了,没什么参考价值

1、合并两个有序数组

(1).传送门

传送门:合并两个有序数组

(2).结果1

超过99.97%

评测机的问题有点大。。。用sort怎么还这么快?

(3).代码1

1
2
3
4
5
6
7
8
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
for(int i = m,j = n-1;j >= 0;i++,j--)
nums1[i] = nums2[j];
sort(nums1.begin(),nums1.end());
}
};

(2).结果2

超过00.00%

占坑 下次写

(3).代码2

1
2


2、第一个错误的版本

(1).传送门

传送门:第一个错误的版本

(2).结果

超过100.00%

(3).代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Forward declaration of isBadVersion API.
bool isBadVersion(int version);

class Solution {
public:
int firstBadVersion(int n) {
int l = 1,r = n,mid;
while(l < r) {
mid = l+(r-l)/2;
if(isBadVersion(mid)) {
r = mid;
}
else {
l = mid+1;
}
}
return l;
}
};