自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 alpaca系列数据集介绍

【代码】alpaca系列数据集介绍。

2024-04-25 12:33:22 735

原创 动态规划入门

Leetcode 509.斐波那契数列解法一:带备忘录的递归解法class Solution {public: const int MAX=40; int res(int memo[],int n){ if(n==0||n==1){ return n; } if(memo[n]!=0){ return memo[n]; } memo[n]=res(mem

2022-04-27 12:16:43 106 1

原创 滑动窗口算法

1.Leetcode 76.最小覆盖子串思路:用i,j表示滑动窗口的左边界和右边界,通过改变i,j来扩展和收缩滑动窗口,可以想象成一个窗口在字符串上游走,当这个窗口包含的元素满足条件,即包含字符串T的所有元素,记录下这个滑动窗口的长度j-i+1,这些长度中的最小值就是要求的结果。我们可以用滑动窗口的思想解决这个问题。在滑动窗口类型的问题中都会有两个指针,一个用于「延伸」现有窗口的 rr 指针,和一个用于「收缩」窗口的 ll 指针。在任意时刻,只有一个指针运动,而另一个保持静止。我们在 ss 上滑动

2022-04-27 11:03:32 239

原创 Leetcode 701. 二叉搜索树中的插入操作

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} *.

2022-04-24 22:37:30 88

原创 Leetcode 106.从中序与后序遍历构造二叉树

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} *.

2022-04-23 23:28:50 65

原创 Leetcode 105.从前序遍历与中序遍历序构造二叉树

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} *.

2022-04-23 23:16:00 1388

原创 Leetcode 226.翻转二叉树

再来复述一遍二叉树的解题思路:二叉树解题的思维模式分两类:1、是否可以通过遍历一遍二叉树得到答案?如果可以,用一个 traverse 函数配合外部变量来实现,这叫「遍历」的思维模式。2、是否可以定义一个递归函数,通过子问题(子树)的答案推导出原问题的答案?如果可以,写出这个递归函数的定义,并充分利用这个函数的返回值,这叫「分解问题」的思维模式。无论使用哪种思维模式,你都需要思考:如果单独抽出一个二叉树节点,它需要做什么事情?需要在什么时候(前/中/后序位置)做?其他的节点不用你操心,递.

2022-04-21 15:46:01 40

原创 Leetcode 104.二叉树的最大深度

1.解法一:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullpt

2022-04-21 11:24:45 1140

原创 《树》的题目开始啦

二叉树解题的思维模式分两类:1、是否可以通过遍历一遍二叉树得到答案?如果可以,用一个 traverse 函数配合外部变量来实现,这叫「遍历」的思维模式。2、是否可以定义一个递归函数,通过子问题(子树)的答案推导出原问题的答案?如果可以,写出这个递归函数的定义,并充分利用这个函数的返回值,这叫「分解问题」的思维模式。...

2022-04-21 10:50:08 300

原创 Leetcode 303.区域和检索 - 数组不可变

考察数组的前缀和!class NumArray {public: vector<int> sums; NumArray(vector<int>& nums) { int n = nums.size(); sums.resize(n + 1); //设置sums数组的大小为n+1,用0来填充元素 for (int i = 1; i < n+1; i++) {

2022-04-19 10:10:52 55

原创 Leetcode 206.反转链表

1.递归反转链表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x),

2022-04-18 17:11:58 974

原创 Leetcode 160.相交链表

1.解法一:哈希表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode

2022-04-18 16:00:19 488

原创 Leetcode 142.环形链表II

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *detectCycle(ListNode *head) { ListNode* slow=head.

2022-04-17 23:23:36 138

原创 Leetcode 141.环形链表

解法一:快慢指针法/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: bool hasCycle(ListNode *head) { ListNode* slow=h

2022-04-17 23:15:40 227

原创 Leetcode 876.链表的中间结点

!!!快慢指针法的经典应用!!!思路:问题的关键也在于我们无法直接得到单链表的长度n,常规方法也是先遍历链表计算n,再遍历一次得到第n / 2个节点,也就是中间节点。如果想一次遍历就得到中间节点,就要使用快慢指针法:让两个指针slow和fast分别指向链表头结点head。每当慢指针slow前进一步,快指针fast就前进两步,这样,当fast走到链表末尾时,slow就指向了链表中点。/** * Definition for singly-linked...

2022-04-17 23:00:36 56

原创 Leetcode 19.删除链表的倒数第N个结点

第一次提交:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), .

2022-04-17 22:46:57 618

原创 Leetcode 23.合并 k 个升序链表

记录一下第一道困难的题目本题考查对priority_queue的使用!对堆的知识的理解!!!/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * L

2022-04-16 23:30:47 434

原创 Leetcode 21.合并两个有序链表

我真是个xx,如此简单的一道题我竟然......大家一定要注意最后返回的是head->next!!!不是p->next!!!解法:双指针法/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : v.

2022-04-16 22:51:23 35

转载 终于总结好了二分查找了

#include<bits/stdc++.h>using namespace std;int a[100];/*一、寻找一个数(基本的二分搜索)*/int binarySearch(int a[],int target,int n){ //搜索区间为左闭右闭 int left=0,right=n-1; while(left<=right){ int middle=left+(right-left)/2; if(a[m.

2022-04-15 23:13:38 50

原创 Leecode 454.四数相加II

解法:用unordered_map一采用分为两组,unordered_map 存一组,另一组和 unordered_map 进行比对。这样的话情况就可以分为三种:unordered_map 存一个数组,如 A。然后计算三个数组之和,如 BCD。时间复杂度为:O(n)+O(n^3),得到 O(n^3).unordered_map 存三个数组之和,如 ABC。然后计算一个数组,如 D。时间复杂度为:O(n^3)+O(n),得到 O(n^3).unordered_map存两个数组之和,如AB。然后计算

2022-04-15 20:03:42 305

原创 Leetcode 202 快乐数

解法一:用undered_set题目中说了会 无限循环,那么也就是说求和的过程中,sum会重复出现当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法了。判断sum是否重复出现就可以使用unordered_set。class Solution {public: int getsum(int n) { int sum=0; while(n) { sum+=(n%10)*(n%10); n/

2022-04-15 15:29:11 227

原创 Leetcode 349. 两个数组的交集

解法一:用record数组来模拟哈希表,思路与《242.有效的字母异位词》相同。class Solution {public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { vector<int> v; int record[1001]; memset(record,0,sizeof(recor

2022-04-14 23:11:44 217 1

原创 Leetcode 242.有效的字母异位词

解法一:直接用sort函数对string进行排序,比较是否相等class Solution {public: bool isAnagram(string s, string t) { sort(s.begin(),s.end()); sort(t.begin(),t.end()); return s==t; }};解法二:用数组record作为哈希表class Solution {public: bool isA

2022-04-14 20:49:24 45

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除