![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
思维
文章平均质量分 64
u011321471
这个作者很懒,什么都没留下…
展开
-
任意给出年月日,如何确定其为周几的算法
问题描述:已知公元元年的第一天为周一,现任意给出一个年月日,求其为周几。解题想法:这题纠结了好久,曾经在网上找到了代码,测试也过了,但有几个地方已知不懂,现在所有的地方都搞明白了,在此分享一下我的想法。假定输入年月日为Y年M月D日,那么要确定Y年M月D日距公元元年第一天有多少天,假设有N天,那么结果就是N%7(当N%7==0是为周日)。下面开始算N,首先确定Y年1月1日距公元元年第一天原创 2013-07-08 17:19:16 · 3169 阅读 · 0 评论 -
最大连续子序列和
最大连续子序列和问题是个很老的面试题了,最佳的解法是O(N)复杂度,当然其中的一些小的地方还是有些值得注意的地方的。这里还是总结三种常见的解法,重点关注最后一种O(N)的解法即可。需要注意的是有些题目中的最大连续子序列和如果为负,则返回0;而本题目中的最大连续子序列和并不返回0,如果是全为负数,则返回最大的负数即可。问题描述求取数组中最大连续子序列和,例如给定数组为A={1, 3,转载 2013-07-28 20:08:31 · 548 阅读 · 0 评论 -
如何判断两个同阶方阵的关系
做题时做到一个需要判断两个同阶方阵关系的问题,在此总结一下。矩阵关系大致分类如下:矩阵B由矩阵A顺时针旋转90度;矩阵B由矩阵A顺时针旋转180度;矩阵B由矩阵A顺时针旋转270度;矩阵B由矩阵A延中垂线反射;矩阵B和矩阵A相等;代码如下:n为方阵阶数。int spin90(char A[],char B[],int n){int flag=1;fo原创 2013-07-11 11:27:42 · 4586 阅读 · 0 评论 -
fibonacci数列新解
最早接触fibonacci数列是在学递归函数那里,所以最开始的求法就是用递归。但是用递归局限性很大,n的值不能很大。所以要另寻方法解决这个问题。大家都知道,fibonacci数列第一项和第二项为初值,第n项的值f(n)=f(n-1)+f(n-2),利用这个公式,用一个循环即可求出f(n),代码如下:long long f(int n){ long long a=1;原创 2013-07-29 19:50:38 · 557 阅读 · 0 评论 -
求一个矩阵最大子矩阵的算法模板
做题时遇到一题需要求一个矩阵的最大子矩阵元素和,在此贴出模板,方便以后用。代码如下:if(n==1){for(i=0;i{sum=0;for(j=i;j{sum+=vn[0][j];if(sum>max)max=sum;} }cout}else{for(int a=0;a{ for(int b=0;b{su原创 2013-07-17 19:04:24 · 855 阅读 · 0 评论 -
转换进制算法
鉴于USACO上Section1.2中有两题都用到进制转换算法,以前自己编过一个算法,但是太过繁琐,此次学到一个较好的进制转换算法,在此分享。将此段算法包装成函数,本人给此函数起名change。代码如下:void change(int k, int B, char str[]){int t=k;int a=0;int j=0;int n=0;while((n=t/B原创 2013-07-08 21:52:51 · 735 阅读 · 0 评论