- 博客(92)
- 收藏
- 关注
原创 逆序对数目
#include<iostream>#include<vector>using namespace std;void meargeSort(vector<int>& testVec, int left, int right, int& count){ //递归出口,Left和Right相遇时就不能切割了,此时就要停止递归的拆分 if (left >= right) { return; } //递,缩小排序区间 int.
2022-05-07 12:50:39
115
原创 在排序数组中查找数字I
#include<iostream>#include<vector>#include<algorithm>using namespace std;int searchBegin(vector<int> testVec, int target){ int left = 0; int right = testVec.size() - 1; while (left <= right) { int mid = left + (rig.
2022-05-06 14:55:19
139
原创 0~n-1中缺失的数字
#include<iostream>#include<vector>#include<algorithm>using namespace std;int findLossNumber(vector<int> testVec){ //二分法查找丢失的数字,先定义查找区间 int left = 0; int right = testVec.size() - 1; while (left <= right) { int mid .
2022-05-05 12:41:24
286
原创 三角形个数
#include <vector>#include <iostream>#include <algorithm>using namespace std;int triangleNums(vector<int> triangleVecs){ int ans = 0; //思路分析 //1.先将原来的vector从小到大排序 sort(triangleVecs.begin(), triangleVecs.end()); //2.三条边,.
2022-05-04 19:54:31
671
原创 两个有序区间寻找中位数(遇到了问题)
#include <vector>#include <iostream>#include <algorithm>using namespace std;double findMedianSortedArras(vector<int> vec1, vector<int> vec2){ //寻找比较短的数组用于寻找切分点,用长的去寻找,即以长的为切分依据的时候,短的很有可能越界, //得到vec1.size() <= vec2.
2022-05-03 19:15:08
378
原创 二维数组查找
#include<iostream>#include<vector>using namespace std;bool searchTarget(vector<vector<int>>& testVec, int target){ if (testVec.size() < 0) return false; //定位左下角的坐标 int row = testVec.size() - 1; int column = 0; w.
2022-05-02 15:25:00
158
原创 搜索旋转排序数组
#include <vector>#include <iostream>using namespace std;int searchTarget(vector<int> testVec, int target){ //思路分析 //因为源数据是有序数据部分翻转一次得到的数据 //数据不管从哪个点一分为二,至少可以保证一侧是有序数据 //我们可以很方便的判断出这部分有序数据中有没有目标值, //如果没有目标值,去另外一侧无序数据中继续一切为二之.
2022-04-27 21:06:18
152
原创 在排序数组中查找元素的第一个和最后—个位置
#include <iostream>#include <vector>using namespace std;int searchBeginPos(vector<int> srcVec, int target){ //思路分析 //先通过二分查找的方法找目标值,如果找不到目标值,直接返回-1, //如果能找到目标值,则要分析目标值是不是srcVec的左边界,即mid是不是0, //如果是边界,则mid就是目标值区间的最左边的位置 //如果.
2022-04-25 21:13:31
415
原创 寻找插入位置
#include <vector>#include <iostream>using namespace std;int SearchInsertIndex(vector<int> searchVec, int target){ int left = 0; int right = searchVec.size() - 1; while (left <= right) { int mid = left + (right - left) / 2;.
2022-04-24 21:10:23
545
原创 二分查找简单练习(非递归)
#include <vector>#include <iostream>using namespace std;int binarySearchTarget(vector<int> searchVec, int target){ int left = 0; int right = searchVec.size() - 1; while (left <= right) { int mid = left + (right - left) / 2.
2022-04-24 20:48:23
360
原创 二分法简单示例
#include <vector>#include <iostream>using namespace std;int binarySearchTarget(vector<int> searchVec, int target, int left, int right){ //递归出口 if (left > right) { return -1; } //之所以不直接int mid = (left + right) / 2是为了防止left.
2022-04-24 20:35:23
361
原创 加油站问题
#include <iostream>#include <vector>using namespace std;int canCompeleteCircuit(vector<int> gas, vector<int> cost){ //思路分析 //题目是环形道路 //首先先确认一个结论:如果总的gas量大于cost,则一定有解。 //证明: //1.当n=2时,一定可以找到一个点A,它的gas >= cost;假设另一个点为B,.
2022-04-24 00:24:20
344
原创 leecode三数之和更接近某个值
#include <iostream>#include <vector>#include <algorithm>using namespace std;int threeNumsClosest(vector<int> testVec, int target){ //对数据进行从小到大排序 sort(testVec.begin(), testVec.end()); int result = testVec[0] + testVec[1] .
2022-04-22 21:33:01
343
原创 leecode三数之和
#include <iostream>#include <vector>#include <algorithm>using namespace std;vector<vector<int>> getThreeNumsSumEquelZero(vector<int> testVec){ vector<vector<int>> result; if (testVec.size() < 3).
2022-04-21 21:20:24
274
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人