
C++ 算法
Jassicar
这个作者很懒,什么都没留下…
展开
-
滑动窗口
遇到子字符串的题目一般都用 “前缀和” 和“滑动窗口”两种解算方法。解法一(暴力解) class Solution { public: int minSubArrayLen(int target, vector<int>& nums) { int sum; int ans = INT_MAX; for(int i =0; i < nums.size();i++){ sum =0; ..原创 2021-04-14 15:38:32 · 167 阅读 · 0 评论 -
冒泡 选择 快排
学习:冒泡、选择图解看这个链接<注意:!!里面程序是不对的,但是冒泡和选择的算法可视化做的很清楚>快排算法基本思想<主要包含两种:挖坑和双指针>大佬写得快排C++实现根据题目写几种排序算法:lc选择排序:class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { int j =原创 2021-04-05 14:59:59 · 174 阅读 · 0 评论 -
数组_大根堆_第K大
学习部分:大跟堆图解lc:解答:class Solution {public: void maxHeapfy(vector<int>& nums , int i , int heapSize){ int l = 2*i+1; int r = 2*i+2; int large = i ; if(l< heapSize && nums[l] > nums[large]){原创 2021-04-04 23:27:52 · 205 阅读 · 0 评论 -
数组_双指针_3
基本思路:用两个指针分别指向头部和尾部,一个动指针实现遍历,如果动指针发现0,就换到前面去,如果发现2就换到后面去。自己最开始写得代码(没有通过):class Solution {public: void sortColors(vector<int>& nums) { int right = nums.size() -1; int left = 0; for(int med = 0; med < ..原创 2021-04-01 16:54:38 · 122 阅读 · 0 评论 -
数组_双指针
今天的目标:多写几个题目,总结双指针题目:q1 lc27解答如下:class Solution {public: int removeElement(vector<int>& nums, int val) { int left =0; for(int right = 0; right < nums.size() ; right++){ if( nums[right] != val ){原创 2021-03-30 22:41:06 · 283 阅读 · 0 评论 -
数组二_移动零
自己写的代码: 基本思路: 看见“0”就删掉,并记一下删除的个数,最后在结尾把删除的“0”都补上。class Solution {public: void moveZeroes(vector<int>& nums) { int cunt = 0; for(int i = 0; i <nums.size();i++){ while(nums[i] == 0 .原创 2021-03-29 23:36:51 · 142 阅读 · 0 评论 -
数组1
自己第一遍的做法:class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> arr; vector<int> sub_arr; int target; int num ; sort(nums.begin(..原创 2021-03-28 21:37:08 · 120 阅读 · 0 评论