数组
数组题目
qq_43116644
这个作者很懒,什么都没留下…
展开
-
快排代码分析
#include<iostream> using namespace std; int arr[7] = { 5,8,2,4,6,9,7 }; //待排序数组 void quick_sort(int left, int right) { int tmp = arr[left]; //找基准 if (left >= right) { //如果左边扫描大于右边扫描就结束 return; } int i = left; .原创 2021-08-09 17:09:04 · 56 阅读 · 0 评论 -
数组题目1
出处:leet27 题目:给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。 思路:用快慢指针。一开始slow和fast都初始化为0,在循环中判断nums[fast]==val。如果不相等时,nums[slow]=nums[fast];slow++。当nums[fast]==val时slow不动,fast++。 int removeElement(vector<int>& nums, int val) ...原创 2021-08-08 15:59:53 · 70 阅读 · 0 评论 -
滑动窗口题目
滑动窗口题目模板 参考:https://labuladong.gitbook.io/algo/mu-lu-ye-1/mu-lu-ye-3/hua-dong-chuang-kou-ji-qiao-jin-jie /* 滑动窗口算法框架 */ void slidingWindow(string s, string t) { unordered_map<char, int> need, window; for (char c : t) need[c]++; int le原创 2021-08-07 16:39:12 · 103 阅读 · 0 评论 -
二分查找题目整理1
思路:升序数组用二分法查找。lower_bound查找第一个大于等于目标值的下标,upper_bound查找第一个大于target的下标。upper_bound得到的下标减一得到target的最后一个下标 int FindFirst(vector<int>& nums,int target) { int left=0; int right=nums.size()-1; while(left<=right) ...原创 2021-08-03 20:10:30 · 93 阅读 · 0 评论 -
二分查找类型题目
1.二分查找模板 https://blog.csdn.net/m0_37302219/article/details/107180126#_7 int search(int* A, int left, int right, int x) { int mid; while (left <= right) { mid = (left + right) / 2; if (A[mid] == x)return mid; else if (A[mid] > x) right原创 2021-08-03 19:33:52 · 56 阅读 · 0 评论