![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++从入门到...
文章平均质量分 58
十年尚可
仰望星空脚踏实地
展开
-
回溯算法整理学习(C++版)
写在前面最开始接触回溯算法是八皇后问题,经典的N皇后问题,当时看了代码就觉得很神奇,但是理解不了为什么是这样的,当时在2n皇后python版一文里面写的题解是2n皇后问题,解决这个先要知道n皇后问题的解法。下面我们先介绍一下n皇后问题。n皇后问题是有nxn的棋盘,有n个皇后,皇后与皇后之间不能在同一行,同一列,以及对角线上。问皇后能有多少种排列方式(皇后都是一样的)。我们采用两个函数,一个函数判断皇后在这个位置上是否合法(是否同行,是否同列,是否对角线)。另一个函数用来深搜,搜到一条符合条件的路原创 2021-06-06 10:53:06 · 522 阅读 · 0 评论 -
重温斐波那契数列
写在前面之前写过一个快速斐波那契python版本的,今天本来想来写个C++版本的快速斐波那契,然后又没写出来,,,,(在线卑微T_T)。所以就借着这个时间,用C++来整理一下整数快速幂,矩阵快速幂以及快速斐波那契的知识吧。part I 整数快速幂在之前的博客python写简单的整数快速幂和矩阵快速幂里面,我给过两个简单的例子,可以很容易看清楚算法的套路,然后具体的分析也稍微写过,在这里,分析传送门。这些用的都是python语言实现的,接下来我们换成C++语言整理一下思路。先举个例子,假如我们计算an原创 2021-05-30 11:47:53 · 120 阅读 · 2 评论 -
C++定义二维数组时候,用vector会初始化为0
C++定义二维数组时候,用vector会初始化为0int main(){ int a[2][2]; cout<<a[0][0]<<endl;//会输出地址 vector<vector<int>> a1(2,vector<int>(2)); cout<<a1[0][0]<<endl;//会输出的是0,初始化的0,下面一样 cout<<a1[0][1]<<endl; cout<<原创 2021-05-29 21:18:35 · 1324 阅读 · 0 评论 -
删除链表中的节点系列
剑指 Offer 18. 删除链表的节点题目给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。注意:此题对比原题有改动示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], val = 1输出: [4,5,9]解释: 给定你链表中值为 1原创 2021-05-23 20:40:32 · 458 阅读 · 0 评论 -
C++对vector数组进行切片
int main(){ vector<int> a{1,2,3}; vector<int> r{&a[0], &a[0]+2}; for(int i = 0;i<2;i++) cout<<r[i]<<endl; return 0;}r的输出是1,2切片数据包含开始数据,包含结尾数据。原创 2021-05-20 10:01:50 · 9811 阅读 · 2 评论 -
C++动态规划
动态规划和背包背包322. 零钱兑换300. 最长递增子序列背包322. 零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。你可以认为每种硬币的数量是无限的。示例 1:输入:coins = [1, 2, 5], amount = 11输出:3解释:11 = 5 + 5 + 1示例 2:输入:coins = [2], amount = 3输出:-1示例 3:输入:原创 2021-04-22 11:00:05 · 163 阅读 · 0 评论 -
C++单调栈、单调队列笔记
单调栈和单调队列单调栈496. 下一个更大元素 I503. 下一个更大元素 II739. 每日温度单调队列单调栈496. 下一个更大元素 I给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: nums1 = [4,1,原创 2021-04-21 22:09:48 · 212 阅读 · 0 评论 -
C++滑动窗口笔记
学习了大佬的滑动窗口讲解,做个笔记。大佬传送门LeetCode76.最小覆盖子串给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。注意:如果 s 中存在这样的子串,我们保证它是唯一的答案。 示例 1:输入:s = "ADOBECODEBANC", t = "ABC"输出:"BANC"示例 2:输入:s = "a", t = "a"输出:"a" 提示:1 <= s原创 2021-04-21 11:25:00 · 674 阅读 · 0 评论 -
基础算法模板(C++学习笔记)
模板二分查找二分查找#include<iostream>#include<vector>using namespace std;//正常的只包含一个目标元素的二分查找int binary_search(vector<int> nums, int target){ int l = 0, r = nums.size() - 1; while (l <= r) { int mid = l + (r - l >> 1); if (原创 2021-04-09 17:28:17 · 138 阅读 · 0 评论 -
蓝桥杯练习系统--“入门训练”(C++)
入门训练BEGIN-4 Fibonacci数列BEGIN-3 圆的面积BEGIN-2 序列求和BEGIN-1 A+B问题BEGIN-4 Fibonacci数列#include<iostream>using namespace std;int main(){ int a = 1; int b = 1; int c = 0; int temp = 0; cin >> c; for (int i = 3; i <= c; i++) { temp = b.原创 2021-01-16 21:49:39 · 299 阅读 · 1 评论