![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题
文章平均质量分 66
江南汪
这个作者很懒,什么都没留下…
展开
-
LeetCode——回溯
组合三部曲确定函数参数和递归终止条件for循环遍历树的深度和宽度回溯记得pop_back.1. 组合为了简单将两个vector设为全局变量startindex要传入,不然递归时无法往下更新递归过程中伴随回溯,path.pop_back就是在回溯过程中使用的,class Solution {public:vector<vector<int>>res;vector<int>path; void backtracking(int n,int原创 2022-03-17 10:02:44 · 660 阅读 · 0 评论 -
Leetcode-动态规划
Leetcode-动态规划动态规划5部曲Leetcode题目1.斐波那契数动态规划5部曲确定dp数组以及下标的含义确定递推公式dp数组如何进行初始化,如dp[0]、dp[1],以及边界条件确定遍历顺序举例推导dp数组Leetcode题目1.斐波那契数斐波那契数dp数组代表最后的数列和递推公式dp[n]=dp[n-1]+dp[n-2]初始化dp[0]=0,dp[1]=1,遍历顺序从左向右遍历,for循环从i=2开始声明数组dp长度为n+1大小,最后返回dp[n]注:声明数组原创 2022-03-14 12:53:04 · 645 阅读 · 0 评论 -
Leetcode——螺弦矩阵系列
Leetcode——螺弦矩阵系列一、思想一、思想59. 螺旋矩阵 II54. 螺旋矩阵剑指 Offer 29. 顺时针打印矩阵确定左边界l、右边界r、上边界t、下边界b.顺时针打印矩阵分为4部分:从左到右、从上到下、从右到左、从下到上矩阵有n×n矩阵,也有m×n矩阵while循环条件为true,只有内部有break才会退出循环,当上边界大于下边界,退出循环,右边界大于左边界退出循环螺弦矩阵II代码:初始化二维数组:vector<vector> res(n, vect原创 2022-02-26 13:20:27 · 227 阅读 · 0 评论 -
Leetcode-滑动窗口法
Leetcode-滑动窗口法一、长度最小的子数组1.暴力法2.滑动窗口法一、长度最小的子数组209. 长度最小的子数组1.暴力法暴力法采用双层for循环,定义变量数组和sum,sum大于等于targe时计算子序列长度sublength,比较sublength和最后返回的result,得到result。初始化result=INT_MAX,这是很多代码比较常见的方式,使用整数最大值和最小值进行初始化。-每一次找到sumlength后要将sum更新一次即初始化为0,重新开始计算。brak原创 2022-02-24 13:38:49 · 671 阅读 · 0 评论 -
Leetcode——双指针
Leetcode——双指针一、环形链表一、环形链表首先怎么判断一个链表有环?即使用双指针法slow,fast,将slow和fast先指向链表的起始位置,再将slow每次移动一个位置,fast每次移动两个位置,这样如果链表有环,slow指针和fast指针必定能在环内相遇。注:如果链表只有一个节点和两个节点怎么办?即while循环条件为fast&&fast->next存在。return语句用于结束当前正在执行的函数,因此在while循环中如果slow指针和fast指针相遇即ret原创 2022-02-22 10:59:53 · 918 阅读 · 0 评论 -
Leetcode-排序
Leetcode-排序一、冒泡排序一、冒泡排序j初始化为倒数第二个,交换依据为nums[j]>nums[j+1]吗,从后面往前排序,最后将最小数字排在第一位,然后i+1,把第二个位置的数确定,依次把所有数位置确定下来。class Solution {public: vector<int> sortArray(vector<int>& nums) { int length=nums.size(); for(int i=0原创 2022-02-21 20:32:37 · 571 阅读 · 0 评论 -
Leetcode——最大子序和
一、Leetcode——最大子序和最大子数组和本题有3种写法:暴力法、贪心法、动态规划法1. 暴力法暴力法使用双层for循环,寻找最大的result,最后return result超时class Solution {public: int maxSubArray(vector<int>& nums) { int result=INT_MIN; for(int i=0;i<nums.size();i++){原创 2022-02-21 15:39:32 · 482 阅读 · 0 评论 -
Leetcode周赛
Leetcode周赛一、???? 第 281 场力扣周赛一、???? 第 281 场力扣周赛第 281 场力扣周赛6012. 统计各位数字之和为偶数的整数个数第一步:编写一个将数字千分位、百分位、十分位数字相加的函数第二步:使用for循环遍历从1~num的数字,如果数字和为偶数,count++,最后return count.注:c++中/是求商,%是求余,比如数985,商为98,余数为5,依次…class Solution {public: int countEven(int n原创 2022-02-20 13:20:14 · 693 阅读 · 0 评论 -
Leetcode刷题——二叉树
Leetcode刷题——二叉树一、二叉树基础知识二叉树种类二叉树存储方式二叉树遍历方式二叉树c++定义一、二叉树基础知识二叉树种类满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。完全二叉树:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2^h -1 个节点。二叉搜索树:只有二叉搜索树有数值。二叉搜索树为有序树。若它的左原创 2022-01-21 15:44:12 · 928 阅读 · 0 评论 -
Leetcode刷题——栈与队列
Leetcode刷题——栈与队列一、栈与队列定义二、Leetcode题目1.用栈实现队列2.用队列实现栈一、栈与队列定义栈:先进后出,栈提供push 和 pop 等等接口,所有元素必须符合先进后出规则,所以栈不提供走访功能,也不提供迭代器(iterator)。 不像是set 或者map 提供迭代器iterator来遍历所有元素。栈的底层实现可以是vector,deque,list 都是可以的, 主要就是数组和链表的底层实现。队列:先进先出,同样不允许有遍历行为,不提供迭代器, STL中队列一样是以d原创 2022-01-21 14:12:01 · 405 阅读 · 0 评论 -
Leetcode刷题——字符串
Leetcode刷题——字符串一、Leetcode题目1.反转字符串一、Leetcode题目1.反转字符串和反转链表相似,反转字符串也可以采用双指针法利用库函数swap交换两个指针位置的值。class Solution {public: void reverseString(vector<char>& s) { int left=0; int right=s.size()-1; while(left<=righ原创 2022-01-19 19:21:58 · 4791 阅读 · 0 评论 -
Leetcode刷题——哈希表
Leetcode刷题——哈希表哈希表使用场景一、Leetcode题目1.有效的字母异位词哈希表使用场景快速判断一个元素是否出现在集合里判断一个元素是否出现过一、Leetcode题目1.有效的字母异位词创建两个unordered_map记录每个字母出现的次数对s中字母进行循环,如果在两个map中字母出现的次数不相等即返回false.class Solution {public: bool isAnagram(string s, string t) { if(s原创 2022-01-19 16:37:54 · 757 阅读 · 0 评论 -
Leetcode刷题——链表
Leetcode刷题-链表一、链表定义一、Leetcode题目1.移除链表元素一、链表定义c++链表节点定义方式:// 单链表struct ListNode { int val; // 节点上存储的元素 ListNode *next; // 指向下一个节点的指针 ListNode(int x) : val(x), next(NULL) {} // 节点的构造函数};自己定义构造函数初始化节点:ListNode *head=new ListNode(5)使用默原创 2022-01-14 16:07:42 · 431 阅读 · 0 评论 -
Leetcode刷题——数组
Leetcode刷题——二分查找一、二分查找使用条件二、二分法写法三、Leetcode题目:二分查找一、二分查找使用条件1.数组为有序数组(无序数组可以sort变为有序数组)2.数组中无重复元素注意事项:区间定义要遵循不变量的原则,区间定义有左闭右闭[left,right]或者左闭右开[left,right)二、二分法写法我习惯使用左闭右闭的写法定义target在左闭右闭的区间里即[left,right],whiile(left<=right),因为left可以等于right,即l原创 2022-01-14 12:47:47 · 388 阅读 · 0 评论