自定义博客皮肤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)
  • 收藏
  • 关注

原创 递归实现全排列

递归实现全排列 #include<bits/stdc++.h> using namespace std; //递归实现全排列 int n; int a[20]; int vis[20]; void dfs(int step){ if(step>n){ for(int i=1;i<=n;i++){ cout<<a[i]<<" "; }cout<<endl; } for(int i=1;i<=n;i++){ if(vis

2022-03-11 15:23:55 342

原创 LeetCode-102. 二叉树的层序遍历-队列

102. 二叉树的层序遍历 /** * 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(

2022-01-30 19:51:41 161

原创 LeetCode-二叉树的中序遍历

94. 二叉树的中序遍历 给定一个二叉树的根节点 root ,返回它的 中序 遍历。 代码分析: /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ /** * Note: The returned array must be malloced, as

2022-01-28 23:28:38 699

原创 Leetcode-85. 最大矩形-单调栈

85. 最大矩形 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 完全想躺平直接用的84题解法:单调栈,时间空间复杂度太大 分析(i==3时略) 典型: class Solution { public: int maxfunction(int a,int b){ return a>b?a:b; } int largestRectangleArea(vector<int> heights

2022-01-28 00:15:54 5660

原创 LeetCode-84. 柱状图中最大的矩形-单调栈

84. 柱状图中最大的矩形 题目 分析:(方法:单调栈) 这里举前两个例子,后面同理 可以观看力扣第二个视频讲解 class Solution { public: int maxfunction(int a,int b){ return a>b?a:b; } int largestRectangleArea(vector<int>& heights) { int n=heights.size(); i

2022-01-23 21:05:50 342

原创 stack容器—C++笔记

stack容器—C++笔记 栈不允许有遍历行为,只能访问栈顶,除非栈顶出栈才能看到后面的元素 #include<iostream> using namespace std; #include<stack> //栈stack容器 void test(){ stack<int>s; //入栈 s.push(10); s.push(20); s.push(30); s.push(40); //只要栈不为空,查看栈顶,并且执行出栈操作

2022-01-23 18:47:09 294

原创 vector—C++笔记

#include<iostream> #include<vector> using namespace std; void test(){ //创建一个vector容器,数组 vector<int> v; //向容器中插入数据 v.push_back(10); v.push_back(20); v.push_back(30); v.push_back(40); //第一种遍历方式 //通过迭代器访问容器中的数据 vector<int>:

2022-01-22 21:40:41 480

原创 LeetCode-最大正方形-动态规划

最大正方形 在一个由 '0' 和 '1' 组成的二维矩阵内,找到只包含 '1' 的最大正方形,并返回其面积。 分析: #include<bits/stdc++.h> #include<vector> class Solution { public: int min33(int a,int b,int c){ int min3=a; if(a>b) min3=b; if(min3>c) min3=c;

2022-01-21 20:15:18 251

原创 LeetCode-最小路径和-动态规划

最小路径和 请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入:grid = [[1,3,1],[1,5,1],[4,2,1]] 输出:7 解释:因为路径 1→3→1→1→1 的总和最小。 动态规划: class Solution { public: int minPathSum(vector<vector<int>>& grid) { int n = grid.size(),

2022-01-21 16:01:00 356

原创 剑指 Offer 最长斐波那契数列 (哈希表,动态规划)

最长斐波那契数列 (哈希表,动态规划) 示例 1: 输入: arr = [1,2,3,4,5,6,7,8] 输出: 5 解释: 最长的斐波那契式子序列为 [1,2,3,5,8] 。 示例 2: 输入: arr = [1,3,7,11,12,14,18] 输出: 3 解释: 最长的斐波那契式子序列有[1,11,12]、[3,11,14] 以及 [7,11,18] 。 class Solution { public: int lenLongestFibSubseq(vector<int

2022-01-20 14:25:44 418

原创 LeetCode-打家劫舍-动态规划

打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 (头一次效率这么高/(ㄒoㄒ)/~~) class Solution { public: int rob(vector<int>& nums) { if(nu

2022-01-17 22:24:34 117

原创 LeetCode-单词拆分-动态规划

单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例 1: 输入: s = “leetcode”, wordDict = [“leet”, “code”] 输出: true 解释: 返回 true 因为 “leetcode” 可以由 “leet” 和 “code” 拼接成。 示例 2: 输入: s = “applepenapple”, wordDict

2022-01-17 21:23:05 210

原创 LeetCode-最长递增子序列-动态规划

最长递增子序列 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 class Solution { public: int lengthOfLIS(vector<int>& nums) { vector<int> value; for(int i=0;i<n

2022-01-15 18:56:55 115

原创 Leecode-跳跃游戏-贪心算法、动态规划

给你一个非负整数数组 nums ,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 假设你总是可以到达数组的最后一个位置。 class Solution { public: int jump(vector<int>& nums) { int maxPos = 0, n = nums.size(), end = 0, step = 0; for (int i =

2022-01-14 22:13:18 2711

原创 LeetCode-6-括号生成(dfs)、栈

LeetCode-6-括号生成(dfs) class Solution { public: vector<string> res; void dfs(int n,int l,int r,string rs){ //n:对数 l:'('数 r:')'数 if(l==n&&r==n) res.push_back(rs); //左括号数等于右括号数等于n时,返回结果给res if(l<n) dfs(n,l+1,r,rs+"(

2022-01-14 14:05:24 143

原创 LeetCode-5-不同路径(动态规划、递归)

解: class Solution { public: int uniquePaths(int m, int n) { vector<vector<int> > dp(m,vector<int> (n)); for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ if(i==0||j==0) dp[i][j]=1; else dp[i][j]=dp[i-1][j]+dp[i][j.

2022-01-13 21:32:16 130

原创 LeetCode-3-最长回文子串

LeetCode-3-最长回文子串 给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s = “babad” 输出:“bab” 解释:“aba” 同样是符合题意的答案。 示例 2: 输入:s = “cbbd” 输出:“bb” 示例 3: 输入:s = “a” 输出:“a” 示例 4: 输入:s = “ac” 输出:“a” 动态规划 class Solution { public: string longestPalindrome(string s) { int m

2022-01-13 16:39:58 148

原创 LeetCode-2-无重复字符的最长子串(哈希)

无重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s = “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: s = “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: s = “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。 请注意,你的答案必须是 子串 的长度,“p

2022-01-12 14:42:01 108

原创 LeetCode-1-两数之和(哈希、vector)

LeetCode-1-两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 输入:nums = [3,

2022-01-09 23:31:54 517

原创 蓝桥杯:矩形切割(c语言、递归)

蓝桥杯:矩形切割(c语言、递归) 题目 【问题描述】    小明有一些矩形的材料,他要从这些矩形材料中切割出一些正方形。 当他面对一块矩形材料时,他总是从中间切割一刀,切出一块最大的正方 形,剩下一块矩形,然后再切割剩下的矩形材料,直到全部切为正方形为止。 例如,对于一块两边分别为 5 和 3 的材料(记为 5×3),小明会依次切出 3×3、2×2、1×1、1×1 共 4 个正方形。 现在小明有一块矩形的材料,两边长分别是 2019 和 324。请问小明最终会 切出多少个正方形? 【答案提交】    这是

2022-01-09 20:02:14 1450

原创 垒骰子(递归和动态规划)

垒骰子 1.暴力递归(递归)上至下 #include<iostream> #include<stdio.h> using namespace std; int op[7]; bool conflict[7][7]; int main(){ op[1]=4; op[4]=1; op[2]=5; op[5]=2; op[3]=6; op[6]=3; int n,m; int x,y; scanf("%d%d",&n,&m); for(int i=0

2022-01-04 17:43:43 465

原创 csdn页面编辑

如何改变文本的样式 生成列表 创建一个表格 快捷键 如何改变文本的样式 *强调文本*强调文本 **加粗文本**加粗文本 ==标记文本== ==标记文本 == ~~删除文本~~ 删除文本 生成一个适合你的列表   无序列表直接短横加空格 “- ” 项目 项目 项目 有序列表直接数字加点加空格 “1. ” 项目1 项目2 项目3 计划任务短横空格加中括号中间有空格 - [ ] 完成为 - [x] 计划任务 完成任务 创建一个表格 (以 两列 为例) 以 两列 为例,只要先写好表头 项

2021-10-17 14:14:40 113

原创 Linux根目录与家目录的区别

Linux根目录与家目录的区别 ~ 代表家(home)目录, /代表根目录 根目录是在最顶端的目录 home是根目录/下的一个文件夹,用户登录后在家目录 root的家目录是: /root 普通用户的家目录是: /home/用户名 相比根目录,增删一般都在home里操作(比较容易看到) ...

2021-10-12 21:09:08 4836

空空如也

空空如也

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

TA关注的人

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