算法
文章平均质量分 75
coderhuhy
To Be a Real Coder.
展开
-
Leetcode Repeated DNA Sequences
Leetcode Repeated DNA Sequences原创 2015-02-08 22:23:28 · 3936 阅读 · 2 评论 -
Leetcode210-Course Schedule II
我的新博客地址:Hu Haoyu’s Blog,欢迎参观!共有n节课程,课程编号从0至n-1。一些课程可能有先修要求,比如修0号课程前需要先修1号课程,表示为[0,1]。题目给出课程数和先后修课程对,要求返回完成所有课程的顺序。可能有很多正确的上课顺序,你只需返回其中一种。如果不可能完成,则返回空数组。原创 2015-05-15 00:30:24 · 638 阅读 · 0 评论 -
OpenCV实现图像搜索引擎(Image Search Engine)
OpenCV(Open Source Computer Vision Library)的计算效率很高且能够完成实时任务。OpenCV库由优化的C/C++代码编写而成,能够充分发挥多核处理和硬件加速的优势。OpenCV有大量技术社区和超过900万的下载量,它的使用范围极为广泛,如人机互动、资源检查、拼接地图等。原创 2015-06-20 21:26:53 · 12691 阅读 · 14 评论 -
Leetcode212-Word Search II
Each word must be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or vertically neighboring. The same letter cell may not be used more than once in a word.原创 2015-05-22 10:44:59 · 827 阅读 · 0 评论 -
Leetcode213-House Robber II
After robbing those houses on that street, the thief has found himself a new place for his thievery so that he will not get too much attention. This time, all houses at this place are arranged in a circle.原创 2015-05-22 11:16:30 · 436 阅读 · 0 评论 -
聚类算法概述(k-Means++/FCM/凝聚层次聚类/DBSCAN)
欢迎光临我的博客:HaoyuHu’s Blog近期做完了labmu的tunet3.0,总算有时间学习一些东西了。目前想学的有聚类分析、图像识别算法和计算机网络方面的知识。在暑假实习期间,开始着手游戏编程。聚类的目的将数据划分为若干个簇,簇内相似性大,簇间相似性小,聚类效果好。用于从数据中提取信息和规律。原创 2015-06-19 00:19:45 · 12703 阅读 · 2 评论 -
Leetcode211 - Add and Search Word - Data structure design
我的新博客地址:HuHaoyu's Blog,最近新增了Jekyll的paginator分页功能和Swiftype的搜索引擎。欢迎参观!原创 2015-05-19 19:55:06 · 682 阅读 · 0 评论 -
Leetcode174-Dungeon Game
骑士只能向下或向右移动,每个方格如果是正数表示加血,如果是负数表示扣血。血量等于或低于0时骑士死亡。求骑士从左上角出发并顺利到达右下角条件下的最小初始血量。初步分析本题采用动态规划。分别从正向和反向考虑。原创 2015-06-25 16:53:35 · 482 阅读 · 0 评论 -
Leetcode214-Shortest Palindrome
我的新博客地址:HuHaoyu’s Blog,欢迎参观。Find and return the shortest palindrome you can find by performing this transformation.原创 2015-05-23 16:02:48 · 882 阅读 · 0 评论 -
Kth Largest Element in an Array
我的新博客地址:HuHaoyu’s Blog,欢迎参观。Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.原创 2015-05-23 19:36:12 · 493 阅读 · 0 评论 -
Leetcode233-Number of Digit One
欢迎参观我的博客:Huhaoyu’s Blog。Given an integer n, count the total number of digit 1 appearing in all non-negative integers less than or equal to n.原创 2015-07-08 00:56:16 · 766 阅读 · 0 评论 -
建堆O(n)时间复杂度证明
建堆复杂度先考虑满二叉树,计算完全二叉树建堆复杂度基本相同。对满二叉树而言,第i层(根为第0层)有2^i个节点。由于建堆过程自底向上,以交换作为主要操作,因此第i层任意节点在最不利情况下,需要经过(n-i)次交换操作才能完成以该节点为堆根节点的建堆过程。原创 2015-07-10 16:31:55 · 2024 阅读 · 0 评论 -
Leetcode220-Contains Duplicate III
Given an array of integers, find out whether there are two distinct indices i and j in the array such that the difference between nums[i] and nums[j] is at most t and the difference between i and j is at most k原创 2015-06-12 10:56:44 · 644 阅读 · 0 评论 -
大数乘法(Multiply Strings)
大数乘法的算法大数乘法的关键在于如何用字符串来模拟大数乘法。方法有如下几种:模拟普通的手算乘法、利用代数方法优化的乘法、快速傅立叶变换FFT。原创 2015-07-11 21:51:48 · 1027 阅读 · 0 评论 -
Leetcode209-Minimum Size Subarray Sum
Given an array of n positive integers and a positive integer s, find the minimal length of a subarray of which the sum ≥ s. If there isn't one, return 0 instead.原创 2015-05-12 22:07:27 · 516 阅读 · 0 评论 -
Leetcode208-Implement Trie (Prefix Tree)
前言我的新博客地址:Hu Haoyu’s Blog,该博客中的博文都已转移到新博客中。欢迎参观!Leetcode新题Implement Trie (Prefix Tree)。原创 2015-05-11 21:44:39 · 432 阅读 · 0 评论 -
AC自动机模板及对多模式匹配的理解
在接触AC自动机之前, 只仅仅掌握单模式匹配的算法: 比如KMP, BMH等算法; 经过优化后, KMP和BMH都具有线性时间复杂度, 而实际情况下, 一般的匹配问题BMH具有亚线性的表现; 而昨天接触的AC自动机则是一种结合了字典树和KMP的一种算法, 使得在多模式匹配下, 时间复杂度达到O(Σmi + n), 其中n为原串长度, mi为第i个模式串的长度;匹配过程中类似于KMP, 原串不走原创 2015-02-09 15:36:24 · 616 阅读 · 0 评论 -
LeetCode Jump Game && Jump GameII
LeetCode Jump Game && Jump GameII又是每日LeetCode Time, 这里直接解决Jump Game和Jump GameII;先上题目: Jump GameGiven an array of non-negative integers, you are initially positioned at the first index of t原创 2015-02-10 16:15:49 · 511 阅读 · 0 评论 -
记清华LabmU校园极客社面试
今天参加了清华LabmU校园极客社的面试。问题一:如何用两个栈实现一个队列,要求均摊O(1)时间复杂度。问题二:如何实时获得一个栈中元素的最小(大)值。注意不取出,只需知道最值。也就是实现一个随时都能知道栈中最小值的特殊栈。问题三:如何实时获得一个队列中元素的最小(大)值。注意不取出,只需知道最值。也就是实现一个随时都能知道栈中最小值的特殊队列。原创 2015-03-20 22:03:48 · 1336 阅读 · 0 评论 -
左偏树leftistTree和斜堆skewHeap的分析和实现
今天主要分析一下左偏树和斜堆, 这两个数据结构是二叉堆的进化版, 一方面能够实现与二叉堆相同的功能, 代码结构也比较简单; 另一方面它们的合并操作的时间复杂度为O(logn), 而普通二叉堆实现合并操作的时间复杂度为O(n);原创 2015-03-12 16:20:32 · 2454 阅读 · 0 评论 -
A-star算法概述及其在游戏开发中的应用分析
回想起曾学习A*寻径算法时,难以透彻理解其原理和机制,但随着对图和搜索算法的理解愈发深入,近期重拾A-star时发现并没有那么困难。因此对A*算法和A*变种算法进行系统地学习,同时对其在游戏开发中的应用做了更深层次上的了解。A*算法很巧妙地结合了Dijkstra算法和Best-fit算法的优点,一方面通过设定代价函数g(x)来考虑从起始点到当前点的实际代价,另一方面通过设定启发式函数h(x)来考虑从当前点到目的地的估计代价,f(x) = g(x) + h(x)。它是从当前点击中取出f值最小的节点并进行拓展原创 2015-03-22 21:59:07 · 2720 阅读 · 0 评论 -
python实现清华大学联网助手(一)——urllib/hashlib/getopt/time/codecs的使用
python版清华大学联网助手github:https://github.com/HaoyuHu/pythonurllib/hashlib/getopt/getpass/time/codecs的使用分析和实例代码。学习完python之后,能够明白它的语法和特性,感觉这是一种与C/C++和java截然不同的语言,它更高级,更接近自然语言。所以能通过极少的代码完成其他语言需要几百行代码才能完成的任务。前些阵子曾经用python从各大网站上抓取信息用作分析数据,觉得挺过瘾。因此为了满足在linux下快速连接原创 2015-04-03 20:41:07 · 2187 阅读 · 0 评论 -
python实现清华大学联网助手(二)——正则表达式re/网页跳转/cookiejar
本篇是第二篇。正则表达式re/网页跳转/cookiejar的使用。本篇要实现python实现清华大学联网助手(一)——urllib/hashlib/getopt/time/codecs的使用中提到的大部分功能。主要新增的功能是:查询流量、帐户余额、当前用户组等基本信息;查询本账号当前在线IP信息;查询每日流量使用明细,并生成直方图。而且需要访问的url不在是之前登录校园网的url。原创 2015-04-04 10:48:09 · 1424 阅读 · 0 评论 -
python实现清华大学联网助手(三)——linux下带参数的自定义命令/import机制
上两篇已经大致满足了我起初设计的需求。最后,对代码进行了一些优化,并且修改代码使一些函数方法可以重用。最终实现了如下功能:登录校园网、登出校园网、查询当前网络状态、查询流量、帐户余额、当前用户组等基本信息、查询本账号当前在线IP信息、查询每日流量使用明细并生成直方图。本篇主要探讨两个问题:1 如何将.py脚本制作成linux下带参数的自定义命令;2 import机制及使用。原创 2015-04-04 15:58:20 · 2622 阅读 · 0 评论 -
Leetcode201-Bitwise AND of Numbers Range
Leetcode201-Bitwise AND of Numbers Range原题:Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all numbers in this range, inclusive.For example, given the range [5, 7], you should return 4.题意:给定一个范围[m, n],0 <= m <= n <= 2147原创 2015-04-16 14:23:11 · 588 阅读 · 0 评论 -
Leetcode-Number of Islands
Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water.原创 2015-04-10 00:20:52 · 577 阅读 · 0 评论 -
Leetcode204-Count Primes
这个题相当于求小于n的所有质数,曾在编程之美中看到过一个求一组质数的算法,叫厄拉多塞筛法,时间复杂度仅有O(nloglogn),这是一个相当好的算法(如果从1到n-1分别判断质数,时间复杂度为O(n*sqrt(n)))。厄拉多塞筛法的步骤:建立从2到n的集合G={2, 3, 4, ..., n},每次从集合中取出最小的数A,这个数就是质数;然后将数A * times从集合中删除,其中1<=times<=n/A。得到一个新的集合G',重复上述步骤直到集合为空,就取出了所有质数。原创 2015-04-29 18:28:27 · 840 阅读 · 0 评论 -
Leetcode Course Schedule
Leetcode207 Course Schedule There are a total of n courses you have to take, labeled from 0 to n - 1. Some courses may have prerequisites, for example to take course 0 you have to first take course 1原创 2015-05-09 00:21:07 · 722 阅读 · 0 评论 -
Troubleshooting GitHub Pages build failures——解决GitHub Pages部署失败问题
If your GitHub Pages site fails to build on our servers, we’ll send you an email letting you know about the failure. In most cases, we’ll be able to identify the exact file and error so you can fix it翻译 2015-05-10 23:33:23 · 3794 阅读 · 0 评论 -
Leetcode23-Merge k Sorted Lists
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.合并k个已排序的链表,并分析时间复杂度。k为可大可小的参数,表示需要合并的链表数目。原创 2015-07-11 01:14:41 · 542 阅读 · 0 评论