自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 博客迁移

已将博客迁移至简书。

2016-05-21 15:23:30 484

原创 清华大学研读间助手-清华小图Android

捐赠二维码在本页的末尾:D。还在为预定不到文图研读间而愁眉苦脸,每晚熬到零点只为抢到一个研读间才能安心睡觉吗?还在因不知道文图剩余座位为零而白跑一趟,或傻傻苦等吗?总因为赶不上研读间预约时间而承担着违约的风险,最终导致一个月无法预订研读间吗?不用怕,不担心,清华小图来帮你:D!清华小图的简介清华小图是一款面向全清华的师生的文科图书馆研读间智能预约助手。小图会为你提供全方位的文图研读间预订服

2015-12-22 21:40:47 3875 1

原创 大数乘法(Multiply Strings)

大数乘法的算法大数乘法的关键在于如何用字符串来模拟大数乘法。方法有如下几种:模拟普通的手算乘法、利用代数方法优化的乘法、快速傅立叶变换FFT。

2015-07-11 21:51:48 962

原创 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 514

原创 建堆O(n)时间复杂度证明

建堆复杂度先考虑满二叉树,计算完全二叉树建堆复杂度基本相同。对满二叉树而言,第i层(根为第0层)有2^i个节点。由于建堆过程自底向上,以交换作为主要操作,因此第i层任意节点在最不利情况下,需要经过(n-i)次交换操作才能完成以该节点为堆根节点的建堆过程。

2015-07-10 16:31:55 1987

原创 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 745

原创 Leetcode174-Dungeon Game

骑士只能向下或向右移动,每个方格如果是正数表示加血,如果是负数表示扣血。血量等于或低于0时骑士死亡。求骑士从左上角出发并顺利到达右下角条件下的最小初始血量。初步分析本题采用动态规划。分别从正向和反向考虑。

2015-06-25 16:53:35 461

原创 OpenCV实现图像搜索引擎(Image Search Engine)

OpenCV(Open Source Computer Vision Library)的计算效率很高且能够完成实时任务。OpenCV库由优化的C/C++代码编写而成,能够充分发挥多核处理和硬件加速的优势。OpenCV有大量技术社区和超过900万的下载量,它的使用范围极为广泛,如人机互动、资源检查、拼接地图等。

2015-06-20 21:26:53 12559 14

原创 聚类算法概述(k-Means++/FCM/凝聚层次聚类/DBSCAN)

欢迎光临我的博客:HaoyuHu’s Blog近期做完了labmu的tunet3.0,总算有时间学习一些东西了。目前想学的有聚类分析、图像识别算法和计算机网络方面的知识。在暑假实习期间,开始着手游戏编程。聚类的目的将数据划分为若干个簇,簇内相似性大,簇间相似性小,聚类效果好。用于从数据中提取信息和规律。

2015-06-19 00:19:45 12615 2

原创 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 624

转载 git整理commit的基本方法(拆分、合并、修改commit)

觉得整理commit还是非常重要的一种技能,看到有人已经很好地整理过了,也搬运到自己的博客中,以备不时之需。本文转载自:Git整理Patch的一些经验。U-Boot升级到了最后,需要将之前比较杂乱的commit重新整理,有的需要整合,有的需要拆分。在这个过程中深刻的体会到了git的强大和灵活性。这里总结一下大的步骤和中间用到的各种小技巧。

2015-05-24 15:33:09 21367

原创 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 468

原创 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 864

原创 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 411

原创 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 763

转载 Android Studio应用指南

本文转载自关于Android Studio,你需要知道的9件事。

2015-05-20 10:35:35 610

原创 Leetcode211 - Add and Search Word - Data structure design

我的新博客地址:HuHaoyu's Blog,最近新增了Jekyll的paginator分页功能和Swiftype的搜索引擎。欢迎参观!

2015-05-19 19:55:06 643

原创 Pseudo-random algorithm: prd and rsa based

我的新博客地址:Hu Haoyu’s Blog,欢迎参观。计算机产生的大多数随机数都是伪随机数。是按照分布概率产生随机数字的过程,数字在概率分布上满足随机要求,但实际上是计算机通过随机函数模拟产生的。生成的方法包括直接法、逆转法、接受拒绝法等。本篇要介绍的是prd伪随机算法和基于rsa的伪随机算法。Pseudo Random Distribution这种伪随机算法在游戏中的应用非常广泛。

2015-05-15 22:13:37 2268

原创 Leetcode210-Course Schedule II

我的新博客地址:Hu Haoyu’s Blog,欢迎参观!共有n节课程,课程编号从0至n-1。一些课程可能有先修要求,比如修0号课程前需要先修1号课程,表示为[0,1]。题目给出课程数和先后修课程对,要求返回完成所有课程的顺序。可能有很多正确的上课顺序,你只需返回其中一种。如果不可能完成,则返回空数组。

2015-05-15 00:30:24 611

原创 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 489

翻译 Using Jekyll with Pages——使用Jekyll框架

前言我的个人博客地址:Hu Haoyu’s Blog,欢迎参观!GitHub Pages支持了Jekyll框架,Jekyll是一个简单的博客类静态网站生成器。Jekyll能够简单地在各个页面中使用全局的headers和footers。同时Jekyll也能提供一些其他的模版特性。

2015-05-12 12:53:18 1556

原创 Leetcode208-Implement Trie (Prefix Tree)

前言我的新博客地址:Hu Haoyu’s Blog,该博客中的博文都已转移到新博客中。欢迎参观!Leetcode新题Implement Trie (Prefix Tree)。

2015-05-11 21:44:39 413

翻译 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 3654

原创 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 697

原创 git合并多个commit的方法: git rebase -i

基本步骤:1 git log查看所有commit的情况,找到自己想要合并的commit之前的那个commit的ssh码,比如43jk2l3ba343;2 git rebase -i 43jk2l3ba343,这样会弹出一个文本编辑器;3 修改pick为squash会将这个commit合并到前一个commit中,保存退出;4 提示写下新的commit message,之前的message可以用#注释掉,保存退出;5 此时再git log就会发现,两个commit被合并到一个commit中。

2015-05-07 21:43:18 4514

原创 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 816

原创 Leetcode202-Happy Number

Leetcode202-Happy Number(Easy)Write an algorithm to determine if a number is "happy".A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat t

2015-04-22 09:22:06 847

原创 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 574

原创 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 559

原创 python实现清华大学联网助手(三)——linux下带参数的自定义命令/import机制

上两篇已经大致满足了我起初设计的需求。最后,对代码进行了一些优化,并且修改代码使一些函数方法可以重用。最终实现了如下功能:登录校园网、登出校园网、查询当前网络状态、查询流量、帐户余额、当前用户组等基本信息、查询本账号当前在线IP信息、查询每日流量使用明细并生成直方图。本篇主要探讨两个问题:1 如何将.py脚本制作成linux下带参数的自定义命令;2 import机制及使用。

2015-04-04 15:58:20 2521

原创 python实现清华大学联网助手(二)——正则表达式re/网页跳转/cookiejar

本篇是第二篇。正则表达式re/网页跳转/cookiejar的使用。本篇要实现python实现清华大学联网助手(一)——urllib/hashlib/getopt/time/codecs的使用中提到的大部分功能。主要新增的功能是:查询流量、帐户余额、当前用户组等基本信息;查询本账号当前在线IP信息;查询每日流量使用明细,并生成直方图。而且需要访问的url不在是之前登录校园网的url。

2015-04-04 10:48:09 1377

原创 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 2122

原创 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 2660

原创 记清华LabmU校园极客社面试

今天参加了清华LabmU校园极客社的面试。问题一:如何用两个栈实现一个队列,要求均摊O(1)时间复杂度。问题二:如何实时获得一个栈中元素的最小(大)值。注意不取出,只需知道最值。也就是实现一个随时都能知道栈中最小值的特殊栈。问题三:如何实时获得一个队列中元素的最小(大)值。注意不取出,只需知道最值。也就是实现一个随时都能知道栈中最小值的特殊队列。

2015-03-20 22:03:48 1306

原创 C++贪吃蛇的简单实现版

近期看完C++Primer,决定小试身手,碰巧看到某博主用C++实现了贪吃蛇,所以我也决定试一试。C++编程的核心思想之一就是OO思维(面向对象思维),需要一定的抽象能力,同样还需要更好的封装。

2015-03-18 18:30:34 14466 3

原创 C++11新特性小结

C++11新特性: lambda匿名函数, auto关键字, decltype关键字, unordered_map&&unordered_set, nullptr, 序列for循环, 变长参数模板tuple, 新的初始化方法

2015-03-12 19:06:10 479

原创 左偏树leftistTree和斜堆skewHeap的分析和实现

今天主要分析一下左偏树和斜堆, 这两个数据结构是二叉堆的进化版, 一方面能够实现与二叉堆相同的功能, 代码结构也比较简单; 另一方面它们的合并操作的时间复杂度为O(logn), 而普通二叉堆实现合并操作的时间复杂度为O(n);

2015-03-12 16:20:32 2415

原创 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 483

原创 AC自动机模板及对多模式匹配的理解

在接触AC自动机之前, 只仅仅掌握单模式匹配的算法: 比如KMP, BMH等算法; 经过优化后, KMP和BMH都具有线性时间复杂度, 而实际情况下, 一般的匹配问题BMH具有亚线性的表现; 而昨天接触的AC自动机则是一种结合了字典树和KMP的一种算法, 使得在多模式匹配下, 时间复杂度达到O(Σmi + n), 其中n为原串长度, mi为第i个模式串的长度;匹配过程中类似于KMP, 原串不走

2015-02-09 15:36:24 591

原创 Leetcode Repeated DNA Sequences

Leetcode Repeated DNA Sequences

2015-02-08 22:23:28 3882 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除