
算法分析
文章平均质量分 66
精进的人生
一步一步的前行,注意脚下的路。
展开
-
2018年网易内推-----小易喜欢的数字
题目: 小易非常喜欢拥有以下性质的数列: 1、数列的长度为n 2、数列中的每个数都在1到k之间(包括1和k) 3、对于位置相邻的两个数A和B(A在B前),都满足(A 例如,当n = 4, k = 7 那么{1,7,7,2},它的长度是4,所有数字也在1到7范围内,并且满足第三条性质,所以小易是喜欢这个数列的 但是小易不喜欢{4,4,4,2}这个数列。小易给出n和k,希望你能帮他求出原创 2017-08-21 12:03:37 · 353 阅读 · 0 评论 -
2016华为笔试题
(1)有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。 分析:(1)队列实现 (2)(网上看到的)//递推公式:f[1] =原创 2017-06-06 15:33:27 · 1021 阅读 · 0 评论 -
B. UCloud 的安全秘钥(简单)
每个 UCloud 用户会构造一个由数字序列组成的秘钥,用于对服务器进行各种操作。作为一家安全可信的云计算平台,秘钥的安全性至关重要。因此,UCloud 每年会对用户的秘钥进行安全性评估,具体的评估方法如下: 首先,定义两个由数字序列组成的秘钥 aa 和 bb近似匹配(\approx≈) 的关系。aa 和 bb 近似匹配当且仅当同时满足以下两个条件: |a|=|b|∣a∣=∣b∣,即 aa原创 2017-06-04 12:02:49 · 345 阅读 · 0 评论 -
A. UCloud 机房的网络搭建
UCloud 刚刚建立一个新机房,近日正在进行网络搭建。机房内有 nn 台服务器和 mm 个分线器,整个机房只有一个网线出口。分线器的作用是将一根网线转换成多根网线。蒜头君也知道每个分线器输出的最大网线根数(不一定要将分线器输出的每根线都用上),问你至少需要使用多少个分线器才能使得每台服务器都有网线可用。 输入格式 第一行输入 n,m(0 \le n,m \le 100)n,m(0≤n,m原创 2017-06-04 11:16:16 · 755 阅读 · 0 评论 -
华为编程题---明明的随机数
[编程题] 明明的随机数 时间限制:1秒 空间限制:32768K 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排原创 2017-06-03 18:10:09 · 395 阅读 · 0 评论 -
华为编程题---进制转换
[编程题] 进制转换 时间限制:1秒 空间限制:32768K 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 ) 输入描述: 输入一个十六进制的数值字符串。 输出描述: 输出该数值的十进制字符串。 输入例子: 0xA 输出例子: 10 思路:这个题主要的问题是字符串转化成整数的问题。其他没有什原创 2017-06-03 17:45:01 · 620 阅读 · 0 评论 -
华为编程题---汽水瓶
(1)[编程题] 汽水瓶 时间限制:1秒 空间限制:32768K 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3原创 2017-06-03 17:31:43 · 1147 阅读 · 0 评论 -
排序子序列
题目描述: 牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列. 如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出2 输入描述: 输原创 2017-05-21 22:43:01 · 555 阅读 · 0 评论 -
leetcode 312. Burst Balloons
看见爱奇艺的一道算法题是leedcode的原题,下面是一些问题分析: 题目描述: Given n balloons, indexed from 0 to n-1. Each balloon is painted with a number on it represented by array nums. You are asked to burst a原创 2017-05-17 23:05:00 · 231 阅读 · 0 评论 -
动态规划(2)
接下来就是一些常见的动态规划题目: (1) 对于两个字符串A和B,我们需要进行插入、删除和修改操作将A串变为B串,定义c0,c1,c2分别为三种操作的代价,请设计一个高效算法,求出将A串变为B串所需要的最少代价。 给定两个字符串A和B,及它们的长度和三种操作代价,请返回将A串变为B串所需要的最小代价。保证两串长度均小于等于300,且三种代价值均小于等于100。 测试样例:原创 2017-04-09 22:08:09 · 277 阅读 · 0 评论 -
动态规划小结
什么是动态规划: 其本质就是利用申请的空间来记录每一个暴力搜索的计算结果,下次要用结果的时候就直接使用,而不是进行重复的递归过程。 1.动态规划学习步骤: (1)阅读题目找出所需的暴力求解方法(递归调用)。 注:要学会递归调用的关系。 (2)根据题目加入相应的记忆数组,来存储递归过程中访问过的结点。使其重复的过程大大减少。(记忆化的暴力求解方法) (3)而后演变到有规律的进行访问原创 2017-04-09 21:50:42 · 192 阅读 · 0 评论 -
文章标题 动态规划理解(1)
1.动态规划学习步骤:(1)阅读题目找出所需的暴力求解方法(递归调用)。 注:要学会递归调用的关系。 (2)根据题目加入相应的记忆数组,来存储递归过程中访问过的结点。使其重复的过程大大减少。(记忆化的暴力求解方法) (3)而后演变到有规律的进行访问,将访问的结点保存。知道得出结果。 (4)由于步骤三中访问过程是有规律的,使得进一步化简得到可能。在寻找好的方法(时间和空间)。2.动态规划的题目原创 2017-03-02 21:42:40 · 196 阅读 · 0 评论 -
文章标题 排序算法稳定性总结
稳定性总结 思想:2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。 好处:(1)稳定性的好处。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。(2)对基于比较的排序算法而言,元素交换的次数可能会少一些。这两个好处是在网上找到的。**如何改进:算法导论习题8.3-2说:如果对于不稳定的算法进行改进,使得那些不稳原创 2017-02-26 15:41:06 · 345 阅读 · 0 评论 -
文章标题 基数排序
基数排序的相关理论基数排序(radixsort)则是属于“分配式排序”(distributionsort),基数排序法又称“桶子法”(bucketsort),而桶排序法是一种思想,而不是具体的某种算法。 这种排序算法必须知道所排数据的范围,否则效率就没有高效了。此外还需要额外的内存空间。并且基数排序法是属于稳定性的排序,其时间复杂度为O(nlog(r)m),其中r为所采取的基数,而m为堆数。 基数排原创 2017-02-26 14:21:33 · 413 阅读 · 0 评论 -
红黑树
红黑树的初步了解原创 2016-04-21 22:50:22 · 263 阅读 · 0 评论 -
淘汰赛车
计蒜课的题目原创 2016-04-16 22:53:02 · 504 阅读 · 0 评论