随笔分类 -  计算机算法

摘要:来源:http://blog.csdn.net/chhuach2005/article/details/21168179 1.题目 编写两个任意位数的大数相乘的程序,给出计算结果。 2.题目分析 该题相继被ACM、华为、腾讯等选作笔试、面试题,笔者2014年替师兄去腾讯笔试就遇到此题,当然若无准备要 阅读全文
posted @ 2018-04-02 21:56 ZYVV 阅读(450) 评论(0) 推荐(0) 编辑
摘要:★ 引子 前面两篇介绍了 Comba 乘法,最后提到当输入的规模很大时,所需的计算时间会急剧增长,因为 Comba 乘法的时间复杂度仍然是 O(n^2)。想要打破乘法中 O(n^2) 的限制,需要从一个完全不同的角度来看待乘法。在下面的乘法算法中,需要使用 x 和 y 这两个大整数的多项式基表达式 阅读全文
posted @ 2018-04-02 21:52 ZYVV 阅读(597) 评论(0) 推荐(0) 编辑
摘要:遗传算法的有趣应用很多,诸如寻路问题,8数码问题,囚犯困境,动作控制,找圆心问题(这是一个国外网友的建议:在一个不规则的多边形 中,寻找一个包含在该多边形内的最大圆圈的圆心。),TSP问题(在以后的章节里面将做详细介绍。),生产调度问题,人工生命模拟等。直到最后看到一个非 常有趣的比喻,觉得由此引出 阅读全文
posted @ 2018-04-02 21:50 ZYVV 阅读(468) 评论(0) 推荐(0) 编辑
摘要:完美洗牌问题,给定一个数组a1,a2,a3,...an,b1,b2,b3..bn,把它最终设置为b1,a1,b2,a2,...bn,an这样的。 分析: 首先,有的问题要求把它换成a1,b1,a2,b2,...an,bn。其实也差不多。我们可以: 循环n次交换a1,b1,a2,b2, 把数组变为b1 阅读全文
posted @ 2018-04-02 20:25 ZYVV 阅读(664) 评论(0) 推荐(0) 编辑
摘要:在我们内部开发使用的一个工具中,我们需要几乎从 0 开始实现一个高效的二维图像渲染引擎。比较幸运的是,我们只需要画直线、圆以及矩形,其中比较复杂的是画直线和圆。画直线和圆已经有非常多的成熟的算法了,我们用的是Bresenham的算法。 计算机是如何画直线的?简单来说,如下图所示,真实的直线是连续的, 阅读全文
posted @ 2018-04-02 16:59 ZYVV 阅读(37693) 评论(0) 推荐(1) 编辑
摘要:普里姆(Prim)算法,和克鲁斯卡尔算法一样,是用来求加权连通图的最小生成树的算法。 基本思想 对于图G而言,V是所有顶点的集合;现在,设置两个新的集合U和T,其中U用于存放G的最小生成树中的顶点,T存放G的最小生成树中的边。 从所有uЄU,vЄ(V-U) (V-U表示出去U的所有顶点)的边中选取权 阅读全文
posted @ 2018-04-02 16:45 ZYVV 编辑
摘要:摘自Tianyi Cui童鞋的《背包问题九讲》,稍作修改,方便理解。 本文包含的内容: <1> 问题描述 <2> 基本思路(直接扩展01背包的方程) <3> 转换为01背包问题求解(直接利用01背包) <4> O(VN)的算法 1、问题描述 已知:有一个容量为V的背包和N件物品,第i件物品的重量是w 阅读全文
posted @ 2018-01-06 15:03 ZYVV 编辑
摘要:(原题出自微软公司面试题)问题如下: 有两个序列a,b,大小都为n,序列元素的值任意整数,无序;要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。例如: var a=[100,99,98,1,2, 3];var b=[1, 2, 3, 4,5,40]; 分析: 通过 阅读全文
posted @ 2018-01-06 14:36 ZYVV 编辑
摘要:前言 笔者以前对散列是什么?哈希又是什么?何谓散列表?散列函数又是个什么东东比较的迷惑。 通过看一些书,查找一些资料总算是有一些眉目了,现将相关的知识与体会记录下来。留待日后 的再学习! 基本概念 散列表(Hash table,也叫哈希表),是根据关键字(key value)而直接进行访问的数据结构 阅读全文
posted @ 2018-01-06 14:35 ZYVV 编辑
摘要:线性时间选择问题:给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素,(这里给定的线性集是无序的)。 1、随机划分线性选择 线性时间选择随机划分法可以模仿随机化快速排序算法设计。基本思想是对输入数组进行递归划分,与快速排序不同的是,它只对划分出的子数组之一进行递归处理。 阅读全文
posted @ 2018-01-06 14:30 ZYVV 编辑
摘要:堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。 二叉堆的定义 二叉堆是完全二叉树或者是近似完全二叉树。 二叉堆满足二个特性: 1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。 2.每个结点的左子树 阅读全文
posted @ 2018-01-06 14:25 ZYVV 编辑
摘要:这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching),以及用于求解匹配的匈牙利算法(Hungarian Algorithm);不讲带权二分图的最佳匹配。 二分图:简单来说,如果图中点可 阅读全文
posted @ 2017-11-04 21:33 ZYVV 编辑
摘要:题目描述 请实现两个函数,分别用来序列化和反序列化二叉树 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right( 阅读全文
posted @ 2017-09-20 14:32 ZYVV 编辑
摘要:链接:https://www.nowcoder.com/questionTerminal/1624bc35a45c42c0bc17d17fa0cba788来源:牛客网给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3, 阅读全文
posted @ 2017-09-19 16:15 ZYVV 编辑
摘要:描述:设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括:(1)删除一个字符;(2)插入一个字符;(3)将一个字符改为另一个字符。将字符串A变换为字符串B所用的最少字符操作数称为字符串A到B的编辑距离,记为d(A,B)。试设计一个有效算法,对任给的2个字符串A和 阅读全文
posted @ 2017-09-12 10:29 ZYVV 编辑
摘要:四元数介绍 旋转,应该是三种坐标变换——缩放、旋转和平移,中最复杂的一种了。大家应该都听过,有一种旋转的表示方法叫四元数。按照我们的习惯,我们更加熟悉的是另外两种旋转的表示方法——矩阵旋转和欧拉旋转。矩阵旋转使用了一个4*4大小的矩阵来表示绕任意轴旋转的变换矩阵,而欧拉选择则是按照一定的坐标轴顺序( 阅读全文
posted @ 2017-08-10 15:04 ZYVV 编辑
摘要:一、 题目背景 海康威视智能泊车机器人依托海康威视多年在图像处理、硬件设计及嵌入式软件领域的技术积累,以及阡陌系列智能仓储机器人历经两年多来精雕细琢已成熟应用的核心技术,瞄准“停车难”痛点,为用户带来完美的停车体验。智能泊车机器人采用海康机器人成熟的视觉和惯性双导航技术实现自主定位,定位精度误差小于 阅读全文
posted @ 2017-07-08 21:26 ZYVV 阅读(2209) 评论(0) 推荐(0) 编辑
摘要:题目详情:http://www.cnblogs.com/wlzy/p/7096182.html 复赛题要求机器人之间不允许发生碰撞和相遇,拿到题目后,大体有以下几个解题思路: 方案一:基于侧边停车的碰撞避免算法 侧边停车是属于一种局部路径规划,只要保证每辆车时时刻刻拥有独立的侧停车位,那么即使发生相 阅读全文
posted @ 2017-07-08 20:49 ZYVV 阅读(971) 评论(0) 推荐(0) 编辑
摘要:此算法由Robert W. Floyd(罗伯特·弗洛伊德)于1962年发表在“Communications of the ACM”上。同年Stephen Warshall(史蒂芬·沃舍尔)也独立发表了这个算法。Robert W.Floyd这个牛人是朵奇葩,他原本在芝加哥大学读的文学,但是因为当时美国 阅读全文
posted @ 2017-06-30 16:36 ZYVV 阅读(240) 评论(0) 推荐(0) 编辑
摘要:题目概述 在车库中安排若干泊车机器人,根据给定的车位地图,合理优化机器人的数量及其运动路径,尽量减少客户在停车和取车中的等待时间,并使总成本最小。 在车库中安排若干泊车机器人,根据给定的车位地图,合理优化机器人的数量及其运动路径,尽量减少客户在停车和取车中的等待时间,并使总成本最小。 参数设定 为了 阅读全文
posted @ 2017-06-29 20:07 ZYVV 阅读(464) 评论(0) 推荐(0) 编辑