![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程
文章平均质量分 74
星落秋风五丈原
胜败乃兵家常事 少侠请重新来过
展开
-
格路问题
格路问题1.格路问题:从(0,0)点出发只能沿x轴或y轴的正方向每步走一个单位,最终走到(m,n)点,有多少条路径?解法很简单,把寻找路径问题转化为求组合问题,一共要走m+n步,其中往x方向m步,y方向n步。列成式子为Cm+nnC_{m+n}^{n}Cm+nn[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传2.不能接触对角线的格路问题假设m>n,(0,0)...原创 2020-04-29 23:32:46 · 3014 阅读 · 0 评论 -
计算组合数python实现
组合数1.阶乘的写法Cnm=AnmAmm=n!(n−m)!∗1m!C_n^m=\frac{A_n^m}{A_m^m}=\frac{n!}{(n-m)!}*\frac{1}{m!}Cnm=AmmAnm=(n−m)!n!∗m!1# import math# math.factorial() ,math里也自带了阶乘函数def factorial(n): res = 1 ...原创 2020-04-27 20:59:59 · 9854 阅读 · 2 评论 -
LeetCode 239. 滑动窗口最大值&二维滑动窗口
滑动窗口最大值####题目描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3...原创 2020-04-21 02:06:15 · 3034 阅读 · 0 评论 -
错排问题
题目:某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况?本题属于错排问题,关键是找到递推关系:所有元素错排结果定义为D(n);(1)首先考虑第1个元素,它可以排的位置有 n-1 个,假设我们把它放到第 k 个位置;(2)然后考虑第k个元素,它可以和第1个元素互换,此时考虑其他元素的错排实际上就是D(n-2),完全与前两个无关,这种情况为(n-1)D...原创 2020-04-19 16:13:40 · 481 阅读 · 0 评论 -
python常用编写格式和规范
0.目录格式列举了几种常用写法,深度学习各种模型常用3中方法,#1:VIS/|-- bin/| |-- vis||-- vis/| |-- tests/| | |-- __init__.py| | |-- test_main.py| || |-- __init__.py| |-- main.py||-- docs/| |-- ...原创 2019-06-06 17:24:15 · 10439 阅读 · 0 评论 -
python变量作用域、闭包、装饰器解析
变量作用域、闭包、装饰器一、变量作用域变量作用域:在Python程序中创建、改变、查找变量名时,都是在一个保存变量名的空间中进行,我们称之为命名空间,也被称之为作用域。python的作用域是静态的,在源代码中变量名被赋值的位置决定了该变量能被访问的范围。即Python变量的作用域由变量所在源代码中的位置决定。作用域的类型:在Python中,使用一个变量时并不严格要求需要预先声明它,但是...原创 2019-07-18 01:36:59 · 500 阅读 · 0 评论 -
python类方法、静态方法、属性方法
类方法、静态方法、属性方法1.概念@classmethod, @staticmethod和@property这三个装饰器的使用对象是在类中定义的函数。@staticmethod装饰器可把其装饰的方法变为一个静态方法;不能访问实例变量和类变量的;可以通过类名来调用这个方法。@classmethod装饰器可把其装饰的方法变为一个类方法;类方法只能访问类变量(全局属性/静态字段),不能访...原创 2019-07-22 14:44:34 · 153 阅读 · 0 评论 -
c++ STL
c++ STL1.STLSTL主要包含容器,算法,迭代器容器:包含大多数数据结构,数组、链表、队列、堆、栈、树等。算法:包含增、删、改、查找、排序等迭代器:相当于指针,通过有序的移动把容器的元素和算法关联起来,是实现STL功能的基础。2.模版:提供一种通用的方法开发可重用代码,算是一种多态.是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。模板是创建泛型类...原创 2019-08-24 23:24:07 · 128 阅读 · 0 评论 -
平衡二叉树和红黑树
平衡二叉树平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。红黑树红黑树的特性:(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!](4)如果一个节点是红...原创 2019-08-28 18:12:49 · 383 阅读 · 0 评论 -
拓扑排序C++实现
拓扑排序AOV(Activity On Vertex network)网:活动在顶点上的网,是一种顶点表示活动,边表示先后顺序的有向无环图,可以用来表示产品生产流等。拓扑排序:将有向无环图的所有顶点排列成一个序列,序列中的顶点满若一对顶点u和v存在路径u->v,则u一定出现再v之前。图解:略…有时间再补充吧步骤:1)从有向图里找一个没有前驱节点的顶点输出;2)删除1)中顶...原创 2019-08-29 11:57:34 · 770 阅读 · 0 评论 -
python找到字符串里的中文?判断字符串是否包含中文?
正则匹配找到中文输出import restr1 = 'hello,你叫什么名字?My name is 李小龙.'res1 = re.findall("[\u4e00-\u9fa5]+",str1)print(res1)str2 = 'hello,你叫什么名字?My name is 李小龙.'a = re.compile("[\u4e00-\u9fa5]+")res2 = a.fin...原创 2019-09-04 13:05:37 · 3719 阅读 · 0 评论 -
KMP算法
KMP算法KMP算法是一种改的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。时间复杂度O(m+n)。问题:给一个目标串T:A...原创 2019-05-07 20:08:12 · 136 阅读 · 0 评论 -
汉诺塔问题
汉诺塔问题:是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。问应该如何操作?思路n个圆盘从A移动到C,可以把B...原创 2019-04-24 16:48:47 · 185 阅读 · 0 评论 -
三球排序不相邻,刷漆不相邻,错排
题目1:1.长度为n的方格,刷3种颜色的颜料,相邻的方格颜料颜色不能相同,且首尾方格颜色不能相同。每个方格必须涂色。计算一共有多少种涂色方式。思路:递推公式,一共n个格子,要把子问题改成和整个问题条件一致,如果考虑选定第一个,此时最后一个有两种可能,子问题是前n-1个,这个时候第n-1个明显和第n个情况不同。这样无法地推。所以考虑1)选定第一个的时候,第n-1个的可能,如果他和第一个相同...原创 2019-04-19 11:51:40 · 515 阅读 · 0 评论 -
c++中的String实现
class String{ public: String(const char *str=NULL);//构造函数 String(const String&str);//拷贝构造函数 ~String();//析构函数 unsigned int size()const; const char*c_str...原创 2018-07-01 11:44:50 · 294 阅读 · 0 评论 -
常见排序算法c++实现
#include<bits/stdc++.h>using namespace std;/*2018.6.18 oder*/void swap(int i,int j,vector<int>&nums){ int temp=nums[i]; nums[i]=nums[j];原创 2018-06-19 20:49:36 · 334 阅读 · 0 评论 -
c++指针和引用
指针:指针是一个变量,存储的是一个地址,指向内存的一个存储单元;引用:引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。引用(reference)是c++对c语言的重要扩充。引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;建议:多用引用,少用指针int ...原创 2018-07-02 14:45:30 · 143 阅读 · 0 评论 -
头条2019
#include<bits/stdc++.h>using namespace std;//1.1¡¢4¡¢16¡¢64µÄÓ²±Ò£¬1024// 200// 17void count_dp(int *dp,int i){ dp[i]=dp[i-1]+1; if(i>=4) dp[i]=min(dp[i-4]+1,dp[i]); if(i>...原创 2019-03-23 00:09:14 · 125 阅读 · 0 评论 -
树的非递归遍历
#include<bits/stdc++.h>using namespace std;/* 1 2 3 4 5 67 8*/void pre_order(TreeNode *T){ stack<int>s; TreeNode *p=T; while...原创 2019-04-04 22:38:44 · 357 阅读 · 0 评论 -
图的最短路径算法:Floyd、Dijkstra、SPFA,C++实现
int dis[100];int pre[100];struct edge{ int u,v,w; edge(){}; edge(int uu,int vv,int ww):w(uu),v(vv),w(ww){};};vector<edge>edges;struct node{ int u,dist; node(){}; nod...原创 2019-04-05 11:47:03 · 227 阅读 · 0 评论 -
卷积,池化,dropout,softmax,relu,bn,nms,iou实现
def conv(x,conv_param,w,b): N, C, H, W = x.shape s,p=conv_param c_out,c_in,kh,kw = w.shape Wn = (W - kw + 2*p) / s + 1 Hn = (H - kh + 2*p) / s + 1 out = np.zeros(N, c_out, Hn, Wn) n_pad = ((0...原创 2019-04-10 14:53:10 · 500 阅读 · 0 评论 -
ali2019
1. 一辆汽车加满油后可行驶n公里,假设汽车在起点是加满油的。旅途中有若干个加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使到达终点的沿途加油次数最少。对于给定的n和k个加油站位置,编程输出停靠加油站的位置。例如:n = 100k = 5d = [50,80,39,60,40,32] (表示加油站之间的距离)bool count(){ vector<int>...原创 2019-04-09 10:09:30 · 121 阅读 · 0 评论 -
几道加油站加油相关问题:最小加油次数、能否回到起点
几道加油站加油相关问题1.选一个加油站能走完一圈:leetcode134. Gas Station2.加油最少次数(easy)3.加油最少次数(hard):leetcode871. Minimum Number of Refueling Stops题目:1.leetcode134. Gas StationThere are N gas stations along a circular ...原创 2019-04-09 10:50:46 · 954 阅读 · 0 评论 -
c++单例模式
/*懒汉式:缺点:1.多线程的情况下可能会出现new两次的情况。2.程序退出后没有运行析构函数。*/class CSingleton{public: static CSingleton* getinstance(){ if(m_instance=nullptr) m_instance = new CSingleton(); ...原创 2019-04-23 00:38:43 · 129 阅读 · 0 评论 -
c++:虚函数和纯虚函数
虚函数:定义:在基类中用virtual声明,不一定不被实现,可以用基类的指针来调用子类的对应函数,实现成员函数的动态重载。子类virtual可写可不写,编译器自动加上。 1.以下继承后的print()相当于重写,两个类print()方法输出结果不同class A{ public: void print() { cout...原创 2018-06-18 18:07:28 · 215 阅读 · 0 评论