题目描述 把 M 个同样的苹果放在 N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?注意:5、1、1 和 1、5、1 是同一种分法,即顺序无关。 输入描述: 输入包含多组数据。每组数据包含两个正整数 m和n(1≤m, n≤20)。 输出描述: 对应每组数据,输出一个整数k,表示有k ...
分类:
移动开发 时间:
2019-04-01 15:33:44
阅读次数:
162
C语言的二分法,想必很多朋友都在初学时是一个难啃的骨头,因为这是必须掌握的最基础的一种算法。在这里我分享一下这个简单的#二分法#查找有序数组#include<stdio.h>intbinary_search(intarr[],intkey,intleft,intright){while(left<=right){intmid=left+(right-left)/2;if(a[mi
分类:
编程语言 时间:
2019-03-28 00:32:35
阅读次数:
199
第一种自然就是调APi啦(手动滑稽) 时间是52 ms,还超过了1/5的人呢 第二种 二分法 就是在0--X之间一半地一半地砍,最后直到左右边界的中间的数 = X/mid,这样做是防止因为mid数字太大而导致溢出 看代码吧,跟排序类似 这种比上种稍微快一点:45 ms 第三种 牛顿迭代法 刚开始还没 ...
分类:
其他好文 时间:
2019-03-24 20:08:19
阅读次数:
193
一、列表生成式 列表生成式是快速生成一个列表的一些公式 列表生成式的书写格式:[x*x for x in range(1 , 11)] 列表生成式语法是固定的,[]里面for 前面是对列表里面数据的运算操作,后面跟平常for循序一样遍历去读取。运行后会自动生成新的列表 一般列表生成式 list1 = ...
分类:
编程语言 时间:
2019-03-24 19:59:31
阅读次数:
169
上次完成最大子序和算是对这类算法的入门,现在想要对其进行加深学习。 最大子数组的问题里对我印象最深的就是动态规划的解决方法——“解其不同部分(即子问题),再根据子问题的解以得出原问题的”。这种解决方法十分常用,而其在一维数组中的总结以及最优解就是Kadane算法。 Kadane算法 作为最简洁的算法 ...
分类:
编程语言 时间:
2019-03-23 12:59:02
阅读次数:
222
对比于二分法,三分法的适用范围要略窄一些,但是并不是代表它没有用,在一些题目中还是有很大用处的。。。 三分法是用来求一个凸性函数的方法,所谓凸性函数就是一个函数在某一区间内有最大值,最大值两侧各具有单调性,并且单调性相反。 题目大意: 给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x ...
分类:
其他好文 时间:
2019-03-23 01:05:55
阅读次数:
116
统计一个数字在排序数组中出现的次数。 博客 www.51msk.cn 1.有序的数组查找,使用二分法2.二分法查找第一次出现的位置,二分法查找最后一次出现的位置,end - start +1 ...
分类:
编程语言 时间:
2019-03-20 14:26:37
阅读次数:
250
看起来不需要用二分法查找 时间限制:3秒 空间限制:32768K 热度指数:509802 本题知识点: 查找 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5 ...
分类:
编程语言 时间:
2019-03-20 10:28:56
阅读次数:
146
二分查找算法 你观察这个列表,这是不是一个从小到大排序的有序列表呀? 如果这样,假如我要找的数比列表中间的数还大,是不是我直接在列表的后半边找就行了? 这就是二分查找算法! 那么落实到代码上我们应该怎么实现呢? 简单版二分法 l = [2,3,5,10,15,16,18,22,26,30,32,35 ...
分类:
编程语言 时间:
2019-03-19 21:39:10
阅读次数:
151