算法
文章平均质量分 65
沐诩
Without thinking further,meeting near sorrow.
展开
-
【算法】最近公共祖先之在线算法(RMQ-ST)
在线算法是基于RMQ-ST算法的基础上进行的RMQ问题求解算法给定一个整型数组,长度为n,寻找区间内的极值,m表示询问的次数。求解算法不外乎下面两种: 1、最基础的算法就是每次都遍历一次区间则时间复杂度为o(k*m)(k<=n) 2、对数组预处理,即先求出所有区间组合的极值,这样在给定询问区间时求极值时间复杂度降低,但是预处理又分为两种情况:2.1 两层循环,时间复杂度o(n2n^2),总的时原创 2016-05-25 14:34:43 · 2084 阅读 · 2 评论 -
【算法】创新工场涂鸦移动2017校园招聘测试题-A卷-软件工程师
今天做了创新工场涂鸦移动2017校园招聘测试题-A卷-软件工程师的题目,我也不知道这算不算是泄题,再说也不见得我写的算法就是对的。贴出来,希望大家相互学习,相互进步,如有违反XX,不胜荣幸。链表1将链表中的所有元素为奇数的节点移到元素为偶数节点的前面,并使奇数之间顺序反转,偶数之间顺序反转。示例: 交换前链表的顺序 交换后链表的顺序 4→5→7→1→6 ==> 1→7→5原创 2016-08-25 22:13:56 · 1300 阅读 · 0 评论 -
【算法】并查集的运用
并查集的概念朋友圈团伙问题连通图总结并查集的概念并查集顾名思义就是合并和查找,问题在于合并什么,查找什么。这里有一种朴素的思想来解释这两个问题。就是把这个想成一棵树。合并什么?就是把不在这棵树里的节点合并到该树中,而查找的是该棵树的根节点。大家可以想象有一棵树,如下: 从上面可以看出并查集的特点,连通和分类。因此,并查集在算法中的运用很灵活也很广泛,比如朋友圈算法(朋友的朋友是朋友),原创 2016-08-10 20:18:16 · 3273 阅读 · 0 评论 -
【算法】最长递增子序列的长度
题目求一个一维数组a[i]中的最长递增子序列的长度,如在序列1,-1,2,-3,4,-5,6,-7中,最长递增子序列长度为4,可以是1,2,4,6,也可以是-1,2,4,6。算法思路算法一(简单暴力)/**用b[]记录当前最长递增子序列长度,b[i]表示a[0,...,i]中的最长递增子序列长度;求b[i],就是从后向前分析,第i个元素的最长递增子序列的长度要么是1(单独成一个序列),要么就是第原创 2016-07-29 20:31:05 · 2122 阅读 · 0 评论 -
【算法】网易2017校园招聘笔试程序题(分田地)
题目牛牛和15个朋友玩打土豪分田地的游戏,牛牛决定让你来分田地,地主的田地可以看成是一个矩形,每个位置有一个价值。分割田地的方法是横竖各切三刀,分成16份,作为领导干部,牛牛总是会选择其中总价值最小的一份田地,作为牛牛最好的朋友,你希望牛牛取得的田地的价值和尽可能大,你知道这个值最大可以是多少吗? 输入描述每个输入包含1个测试用例。每个测试用例的第一行包含两个整数n和m(1 <= n,m <= 75原创 2016-08-04 11:17:26 · 4947 阅读 · 3 评论 -
【算法】字符串中找出第一个不重复的字符
思想:1、采用两个int整数,firstHappen整数记录字符对应ascii码对应位,如果出现则为1,不出现默认为0;2、reHappen整数记录字符对应ascii码对应位,如果重复出现的为1,否则默认为0;3、然而对于任意字符,ascii码是0-255,不可能有一个int整数能表示一个最大为255位的数,因为int在32位机只能最大表示32位整数,所以,此时需要用到firstHap原创 2015-09-27 09:27:31 · 2988 阅读 · 0 评论 -
【算法】数组中的逆序对的总数
题目描述: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 输入: 5 4 3 2 1输出: 10思想: 本质上是归并排序,只是在每次当mid右半部的数小于mid前半部某个数i时(mid,i都是下标),统计逆序对count=mid-i+1算法代码:public class InversePairs_Sol原创 2015-10-21 09:39:05 · 1150 阅读 · 0 评论 -
【算法】约瑟夫环问题(报数出列)
题目描述 已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。输入 7 3输出 3 6 2 7 5 1 4算法思路 先假设,编号是0~n-1,报数是从0~m-1,因为只要在最后结果+1,就变回编号1~n了。 第i=1次报数:A)0 1 2原创 2015-11-06 22:16:58 · 6182 阅读 · 1 评论 -
【算法】最长回文子串-Manacher算法(hihoCoder 1032)
描述小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。这一天,他们遇到了一连串的字符串,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能分别在这些字符串中找到它们每一个的最长回文子串呢?”小Ho奇怪的问道:“什么叫做最长回文子串呢?”小Hi回答道:“一个字符串中连续的一段就是这个字符串的子串,而回文串指的是12421原创 2016-03-10 13:59:29 · 595 阅读 · 0 评论 -
【算法】最近公共祖先(hihoCoder #1062)
题目描述 小Ho最近发现了一个神奇的网站!虽然还不够像58同城那样神奇,但这个网站仍然让小Ho乐在其中,但这是为什么呢? “为什么呢?”小Hi如是问道,在他的观察中小Ho已经沉迷这个网站一周之久了,甚至连他心爱的树玩具都弃置一边。 “嘿嘿,小Hi,你快过来看!”小Ho招呼道。 “你看,在这个对话框里输入我的名字,在另一个对话框里,输入你的名字,再点这个查询按钮,就可以查出来……什么!我们居然原创 2016-05-06 16:29:43 · 1548 阅读 · 0 评论 -
【算法】KMP经典算法,你真的懂了吗?
有关KMP算法的书籍、帖子、博客铺天盖地,但是你真的能看懂?你知道为什么要有next数组,next数组到底什么意思,又该怎么求next数组,有了next数组之后又该怎样判断模式串和主串是否匹配成功?本文绝对不是讲解KMP算法最细致的一篇文章,但却是为了解决大家的疑惑而写的一篇文章。KMP的概念首先说说什么是KMP算法,说白了,就是不希望用简单的两层循环遍历两个串那样去看能否匹配成功。简单朴素的字符串原创 2016-08-15 21:03:11 · 5883 阅读 · 4 评论