最小好进制 以字符串的形式给出 n , 以字符串的形式返回n的最小 好进制,如果n的k(k>=2) 进制数的所有数位全为1,则称 k(k>=2) 是n的一个好进制 。思路:假设k为n的最小好进制,则一定满足以下条件:(1)1+k*1 + k^2 +...+k^m = n根据上面的式子可以知道k^m<n;(2)由二项式公式:(x+y)^n = c(n,0)y^0*x^n + c(n,1)y^1*x^(n-1) + ...因此(k+1)^m = c(n,0)k^0 + c(n,1)
操作系统--操作系统的基本概念 熟悉的操作系统:MacOS,IOS;Windows,Andriod;Linux;NOKIA symbian。操作系统的概念(定义)--什么是操作系统 操作系统的功能和目标 -- 操作系统要做些什么1.定义:操作系统(OS)是控制和管理整个计算机系统的软件和硬件资源,并合理的组织和调度计算机的工作和资源的分配,以提供给用户和其他软件方便的借口和环境。它是计算机系统中最基础的系统软件。2.功能:文件管理 存储器管理 -- 执行程序之前需要将程序放入内存 处理机管理 -- 对应的程序被
几种经典排序算法的实现 1.冒泡排序(从小到大)两两比较相邻的数字,如果左边比右边大就进行交换。每进行一趟排序可把最大值放在最右边。//1.冒泡排序void bubble(vector<int> arr, int n) { int i; int tmp; for(int i = 0; i<=n-1; i++) { if(arr[i] > arr[i+1]) { tmp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = tmp; }
两个字符串的删除操作 给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。示例如下:动规五部曲:(1)dp数组及下标含义dp[i][j] 表示为使以 i-1 为下标的word1和 j-1 为下标的word2的相同的最小步数。(2)确定递推公式当word1[i-1] 和 word2[j-1]相同时,只有一种情况,此时dp[i][j] = dp[i-1][j-1]。 当word1[i-1] 和 word2[j-1]不同时
买卖股票的zui佳时机 1.买卖股票的最佳时机给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格,只能选择 某一天 买入这只股票,并选择在未来的某一个不同的日子 卖出该股票。设计一个算法来计算能获取的最大利润。返回你可以从这笔交易中获取的最大利润,如果不能获取任何利润,返回 0 。动态规划五部曲:(1)dp数组及下标含义dp[i][0]表示第i天持有股票所得现金,dp[i][1]表示第i天不有股票所得现金。(2)确定递归函数确定dp[i][0]:若第i
打家劫舍II 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,能够偷窃到的最高金额,示例如下:因为可能会成环,所以需要考虑三种情况:(1)不包含收尾的最大值(2)只包含首,不包含尾的最大值(3)只包含尾,不包含首的最大值后两
多重背包理论基础 多重背包问题有N种物品和容量为V的背包,第i种物品最多有Mi件可用,每件物品占空间为Ci,价值为Wi,求解哪些物品放入背包可使价值总和最大。多重背包问题可以转化为01背包问题,将多重背包问题中的Mi件物品摊开就是一个01背包问题,且每个物品只用一次,实现代码如下:void test_multi_pack() { vector<int> weight = {1,3,4}; vector<int> value = {15,20,30}; vector<int>