算法
会飞的鱼_fly
这个作者很懒,什么都没留下…
展开
-
NP-Hard问题和NP-Complete问题
对 NP-Hard问题和NP-Complete问题的一个直观的理解就是指那些很难(很可能是不可能)找到多项式时间算法的问题。因此一般初学算法的人都会问这样一个问题:NP-Hard和NP-Complete有什么不同?简单的回答是根据定义,如果所有NP问题都可以多项式归约到问题A,那么问题A就是 NP-Hard;如果问题A既是NP-Hard又是NP,那么它就是NP-Complete。从定义我们很容易看出转载 2016-12-03 10:04:23 · 1047 阅读 · 0 评论 -
数组中重复的数
题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。思路1:用交换的思想。遍历数组,将它们都各自放回属于自己的位置。判断第i个位置的元素tmp是否和i相等,相等则继续遍原创 2017-05-12 21:59:51 · 409 阅读 · 0 评论 -
数组中只出现一次的数
题目1:一个数组中,除了某一个只出现过一次的数字外,其余数字均出现过2次,找出这个只出现了一次的数字。思路:分析题干,发现强调了数组中数字出现的次数为1和2,则可以想到异或运算,两个相同的数字异或结果为0,相同的数异或的结果为其本身,且异或运算存在交换律和结合律,即a^b^a=b, b^a^a=b。那么利用异或运算的这些性质即可求解本题:依次将数组的每个数进行异或运算,异或的结果即为所求。原创 2017-05-03 22:10:13 · 438 阅读 · 0 评论 -
把数组排成最小的数
刚开始做这道题时没有理解算法的含义,搞了好久才发现是理解偏了,主要原因是我没有理解透sort函数里比较函数的作用,它相当于是按程序员的需求重新定义比较规则,比如这道题就是要重定义比较整数a和b的比较规则,即:若ab >ba, 则 a > b; 否则 a class Solution {public:/*思路: 将数组中的数按定义的排序方式进行排序,即:若ab >ba, 则 a > b; 否原创 2017-04-28 12:01:41 · 272 阅读 · 0 评论 -
【面试】八大排序算法
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的转载 2017-02-03 19:28:44 · 311 阅读 · 0 评论 -
面试中的二叉树题目
原文出处:http://blog.csdn.net/walkinginthewind/article/details/7518888树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基本都可以用递归思想解决,当转载 2017-03-02 21:18:00 · 248 阅读 · 0 评论 -
算法时间复杂度的计算
在这篇文章中,我们用简单的循环程序进行分析讨论时间复杂度。1) O(1)一个函数调用或是一组语句都认为是O(1)的复杂度 (如果没有调用不包含循环,递归或其他非常量复杂度的函数)。1// set of non-recursive and non-loop statements例如函数 swap() 是转载 2016-12-28 10:25:12 · 634 阅读 · 0 评论 -
澄清P问题、NP问题、NPC问题的概念
http://blog.csdn.NET/dongwq/article/details/4305435这或许是众多OIer最大的误区之一。 你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行”的问题,NPC转载 2016-12-07 11:28:52 · 252 阅读 · 0 评论 -
N个球放M盒子问题
一、序言这个“N个球放M盒子问题”是很经典的排列组合了,论坛上也有经典的8种情况的解法。论坛上讨论这8种情况的,我搜索了下(点左边查看搜索结果,还是有很多人在讨论的) 看了部分搜索结果,大多都来自下面这个排列组合的牛人。—“军团-云淡”,此人貌似非常喜欢研究排列组合,有点明白了为什么很多人叫他公式帝,因为排列组合很多都是模型,比如:全错位排列(欧拉“装错信封问题”)等等,下面是他部分贴子转载 2016-12-03 11:43:05 · 2734 阅读 · 0 评论 -
从1到n整数中1出现的次数:O(logn)算法
1. 题目描述输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11和12,1一共出现了5次。2. 题目来源第一次看到是在《剑指Offer》第2版上,面试题32。leetcode和牛客网上都有这道题。3. 本文的目的看了《剑指Offer》上的解法,我觉得不能算好:这段解释描述有些不清晰,而且没有图,难以理解。从书中给出的实现转载 2017-04-25 19:06:37 · 295 阅读 · 0 评论