题目: n个数字 , , ,n 形成一个圆圈,从数字 开始,每次从这个圆圈中删除第m个数字 第一个为当前数字本身,第二个为当前数字的下一个数字 。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。 我的思路: 这是个很经典的环形问题,最优的方案时间复杂度是O n :先构建递推公式,再使用循环或者递归都能轻松求解, 网上的教程很少能把这个递推公式的由来描述 ...
2017-03-23 23:18 0 2148 推荐指数:
// test14.cpp : 定义控制台应用程序的入口点。 // ...
问题:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*) 看到这个就想起了上学的时光,那个苦啊. 废话不多说,当时看到这个问题我就想到了递归,然后匆匆写了代码如下: 但是考虑不够全面,1.没有考虑会不会减到0或者负数 2. 如果n ...
题目:给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字。(原数组不必保留) 方法1.对数组进行排序(快速,堆),然后比较相邻的元素是否相同。时间复杂度为O(nlogn),空间复杂度为O(1)。方法2.使用bitmap方法。定义长度为N/8的char数组,每个 ...
【面试题043】n个骰子的点数 题目: 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s, 输入n,打印出s的所有可能的值出现的概率。 n个骰子的总点数,最小为n,最大为6n,根据排列组合的知识 ...
#include <iostream> using namespace std; int main() { long long s,n,i,j,p;s=0; cin>>n; for (i ...
唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中, ...