算法
探索编程世界
这个作者很懒,什么都没留下…
展开
-
VS简单的调试技巧
1、添加断点或取消断点:F9(或者点击代码行最左边的灰色行)2、调试:F10逐过程(不进入函数内部,直接获取函数运行结果)3. F11逐语句(会进入函数),如果想跳出函数按shift+F11,如果对某个函数的使用定义不清楚,按F12转到定义。4、按F5执行,如果调试中多个断点,按F5,执行到下一个断点5、出现箭头表示执行到该语句,但是该语句还没执行。6、鼠标悬停,监视变量常用: F11逐条执行,shift+F11跳出该函数 加上变量监视 完美...原创 2021-04-15 22:18:27 · 378 阅读 · 0 评论 -
拼凑面币
//#include<bits/stdc++.h> 没有vector#include<iostream>#include<vector>#include<algorithm>using namespace std;/*问题描述:arr中是面币的数值大小,eg:arr=={1,2,5,10,20,100}元等 要凑齐325元,有多少种方法? *///作用:返回 可以自由使用arr[index...]及其以后的所有面值,每种面值可以使用任意张原创 2021-04-17 14:20:04 · 67 阅读 · 0 评论 -
计数排序稳定版+不稳定版
#include<iostream>using namespace std;#include<vector>#include<algorithm>//计数排序:不稳定版(相等值相对位置变动)和稳定版(相等值相对位置不变动)//适用情况 :数量大但是数值的范围小 eg:年龄,(0-100)分数(1-100)//不稳定版vector<int> processing(vector<int>arr) { int maxnum = *(ma原创 2021-04-27 17:30:04 · 125 阅读 · 0 评论 -
简单的程序计时
#include <iostream>#include <windows.h>using namespace std; int main(){ DWORD star_time = GetTickCount(); //此处需要注意如果数值太小则检测不出来 for (int i = 0; i < 100000000; i++) { i++; } DWORD end_time = GetTickCount(); cout << "这个程序运行时原创 2021-04-27 14:35:22 · 73 阅读 · 0 评论 -
23种设计模式
1. 简单工厂模式#include<iostream>using namespace std;//抽象水果类class AbstractFruit {public: virtual void show() = 0;};class Apple :public AbstractFruit{public: virtual void show() { cout << "it's apple" << endl; }};class Banana :p原创 2021-06-01 15:18:16 · 96 阅读 · 0 评论 -
返回字符串所有不重复子序列 递归法
#include<iostream>using namespace std;#include<vector>#include<string>#include<stack>#include<set>#include<unordered_set>class Solution {public: //unordered_set<string>&ans为传出参数,必须为引用的方式。path记录每种选择的路径原创 2021-04-15 14:29:59 · 218 阅读 · 0 评论 -
C++类型转换
一 C风格类型转换void test01(){ //一: /************C风格的转换*********************/ int a1 = 80; char c1 = a1; cout << c1 << endl; c1++; cout << c1 << endl; //C风格的自动类型转换 int a2 = 80; cout << (char)a2 << endl;//C风格的强制转换}转载 2021-04-20 14:31:32 · 52 阅读 · 0 评论 -
迷宫问题
int Getminstep(vector<vector<int>>arr, int curx, int cury, int targetx, int targety, vector<pair<int, int>>used) { deque<pair<int, int>>dq; int countnum = 0; dq.push_back(pair<int, int>(curx, cury)); used.push_原创 2021-04-26 20:40:35 · 75 阅读 · 0 评论 -
01背包
//#include<bits/stdc++.h> 没有vector#include<iostream>#include<vector>#include<algorithm>using namespace std;//输入如下 对应的输出为19/*5 108 610 44 25 45 3*//***********************************暴力递归*****************************原创 2021-04-16 20:52:17 · 66 阅读 · 0 评论 -
C++软开学习路线转自培训机构
原创 2021-03-09 16:53:23 · 175 阅读 · 0 评论 -
获取字符串的子序列递归方式
#include<iostream>using namespace std;#include<vector>#include<string>#include<stack>class Solution {public: //vector<string>&ans为传出参数,必须为引用的方式。path记录每种选择的路径,最后 //被压入ans中,就是以引用的方式,也不会变化还是""空 void GetSonlist(strin原创 2021-04-15 14:12:42 · 225 阅读 · 0 评论 -
Java的三目运算符与C++的三目运算符的区别
c++的三目运算符既可以作为左值接收赋值,又可以作为右值赋给其他变量,还可以作为表达式谁有不赋值Java的只能作为右值赋给其他变量c++:java只支持第一种int main() { int a = 1; int b = 2; int c = a > b ? a++ : b++; //作为右值 a > b ? ++a : ++b = 100; //作为 左值 a > b ? a-- : b--; //作为单独的表达式 system("pause");原创 2021-11-03 15:12:08 · 221 阅读 · 0 评论 -
机器人运动递归法+dp
#include<iostream>using namespace std;#include<vector>#include<string>#include<stack>#include<set>#include<unordered_set>#include<algorithm>/********************************从左到右的尝试模型************************原创 2021-04-17 11:20:32 · 135 阅读 · 0 评论 -
全排列 递归法
#include<iostream>using namespace std;#include<vector>//#include<string>//#include<stack>//#include<set>//#include<unordered_set>//#include<algorithm>class Solution {public: void swapfunc(int& a, int&原创 2021-04-15 15:36:18 · 60 阅读 · 0 评论 -
汉罗塔递归返回操作步骤和步数
#include<iostream>using namespace std;#include<vector>#include<string>class Solution {public: void hans(int n, string A, string B, string C, int& steps ) { if (n == 0) return; if (n == 1) { cout << " move " <<原创 2021-04-14 21:32:27 · 86 阅读 · 0 评论 -
范围上的尝试模型
#include<iostream>using namespace std;#include<vector>#include<string>#include<stack>#include<set>#include<unordered_set>#include<algorithm> /* 范围上的尝试模型 特点 范围上的尝试模型由于left必定right 所以dp表只有斜对线一半(包括斜对线位置)有效原创 2021-04-16 23:16:11 · 94 阅读 · 0 评论 -
全排列返回不重复序列递归法
#include<iostream>using namespace std;#include<vector>#include<string>#include<stack>#include<set>#include<unordered_set>#include<algorithm>/********************************普通输出全排列即使重复**********************原创 2021-04-15 16:15:22 · 98 阅读 · 0 评论 -
斐波那契数列
#include<iostream>using namespace std;#include<vector>class Solution {public: /*************暴力递归法**************************/ int fibfoc(int n) { if(n==0) return 0; if(n==1) return 1; return fibfoc(n-1)+fibfoc(n-2);原创 2021-04-14 20:13:15 · 50 阅读 · 0 评论 -
解码方法 leetcode 91 字符对应转换数字 ,递归法+dp
#include<iostream>using namespace std;#include<vector>#include<string>#include<stack>#include<set>#include<unordered_set>#include<algorithm>/********************************暴力递归*****************************原创 2021-04-15 20:12:54 · 141 阅读 · 0 评论 -
全排列回溯法
#include<iostream>#include<algorithm>using namespace std;#include<vector>#include<string>#include<set>void processing(vector<string>arr,set<int>&used,string path,vector<string>&ans){ if (used.原创 2021-04-26 14:48:38 · 90 阅读 · 0 评论 -
递归概念专题
暴力递归一:基础知识:暴力递归就是尝试出所有的方案。1.1:递归的过程和伪代码模版有明确的不需要继续进行递归的条件(basecase)把问题转化为规模缩小了的同类问题的子问题确定当得到了子问题的结果之后的决策过程int/void process(一个或者两个变化参数和一些不变的参数) { if(end_condition) {//递归结束的条件和basecase是一致的,有2种理解方式 end;//结束情境 return; //return value; } slove();/原创 2021-05-15 17:06:28 · 90 阅读 · 0 评论 -
贪心案例1
#include<iostream>#include<algorithm>using namespace std;#include<vector>#include<string>/*贪心算法*/ //:一般是计算一个最大值或者最小值,(注意与dp分开)局部最优为全局最优 //1.问题描述:给一个字符串数组,返回其拼接后的最小字典序class MyCompare {public: bool operator()(string a, st原创 2021-04-27 10:43:55 · 81 阅读 · 0 评论