- 博客(17)
- 资源 (3)
- 收藏
- 关注
原创 LeetCode:Minimum Depth of Binary Tree&& Maximum Depth of Binary Tree
摘要:本文采用递归的形式求一棵二叉树的最小深度和最大深度。
2015-07-31 16:01:49 467
原创 LeetCode:Invert Binary Tree
摘要:采用递归的方式,从二叉搜索树的树根开始,对任意结点的左右子树进行交换,使得最后满足左子树>根结点>右子树。算法C语言实现。
2015-07-31 14:33:27 390
原创 哈希表系列:初探哈希(二),c语言实现
摘要: 上次分析了哈希表的链地址法的实现,即采用“数组+链表”的数据结构。这次,介绍下用哈希桶的方式去解决哈希冲突,即通过哈希函数hash()将key转化为哈希值,然后根据桶的容量(桶的容量固定),且结合“除余法”定位到某个哈希下标,为该哈希值建立哈希桶(Bucket)。
2015-07-21 19:20:29 567
原创 *LeetCode:Longest Palindromic Substring
问题描述:给定一个字符串,寻找最长回文子串。猜想:当拿到这个问题,最初的想法打算用分治法来解,也许是受到近期在看算法导论的影响,其实它跟算法导论里"最大子数组"问题类似。但是,唯一的不足:没有被accepted,但是在vs2010里我解决了这个问题。针对这个问题,我花费2天的时间去完善,但是仍然存在瑕疵,故想记录下来当时的想法,也希望得到你们的帮助。1、算法描述:step1:
2015-07-21 13:24:37 429
原创 LeetCode:Remove Nth Node From End of List
摘要:移除链表末尾算起的第n个结点。算法思路:1)首先判断链表head是否为空,或者n是否大于0;2)统计链表长度length,将从尾部算起待移除的第n个结点转化为从链表首部开始的第target个结点; (taget=ListLength+1-n)3) 判断是否删除的是头结点;4)对链表进行遍历,找到第target结点进行删除; (添加变量before_head,用于存放当前结点的前个结点地址)
2015-07-20 22:22:41 446
原创 动态规划:钢条切割问题
动态规划与分治法相似,都是通过组合子问题的解来求解原问题。回顾下分治法的原理:它将问题划分为互不相交的子问题(注意:互不相交),递归求解子问题,再将它们的解组合起来,即为原问题的解。 但是,动态规划与分治法不同,有以下几点:1)对于子问题重叠的情况,分治法则重复求解,不高效。而动态规划对每个子问题只求解一次,因为它将子问题的解进行保存,当遇到重复的子问题时,不再计算,只需查找替
2015-07-17 20:56:53 2565
原创 LeetCode: Palindrome number
问题描述:1)到底怎样的整数才算是回文,或者说回文有什么特点?答:整数必须是镜像即关于中间位对称,称该整数为回文。2)负数到底算不算回文?答:不算。算法思路:1)统计整数的位数,记为count;2)根据count进行溢出判断,若溢出则return false;3)判断该给定的整数是否为回文;按照算法思路,我将它总结以下2方面进行介绍。一)如何
2015-07-15 00:09:10 480
原创 LeetCode: Reverse integer
如上所示为题目,它要求将整数以中间位以“镜像"的形式进行转换,具体参考题目。注意点:1)整数0的转换仍为0;2)负数的转换可以当成正数进行考虑;3)对最后的结果进行溢出分析,若溢出则返回0.思路分析:本算法将整数通过函数sprintf转换为字符串进行考虑。1)考虑num=0和num属于[-9,9]的情况;2)若num3)通过sprintf将整数转换到字符串进行处理;
2015-07-14 12:39:25 337
原创 数组排序问题的两种方法:插入排序算法和递归(分治)算法
在这里我将讨论数组的排序问题,并引入插入排序算法和递归算法求解。1、插入排序 这里通过算法导论中的伪代码说明算法过程。 Insertion-sort(A) for(j=2 to A.length) key=A[j] //Insert A[j] into s
2015-07-11 23:06:20 2641
转载 压测工具webbench源码分析
转载自http://www.cnblogs.com/xuning/p/3888699.html。 说明:内容绝大来自博主HorstXu,但是也添加了自己的一点理解。一 我与webbench二三事 Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能。Webbench使用C语言编写
2015-07-03 21:06:47 766
原创 二叉树系列:初探二叉树,c语言实现
端午节假期的最后一天,天气凉爽,我下午该回学校了。原本,我昨天就该写下二叉树的博文,但是由于在二叉树删除这块的功能实现不尽人意,所以我推迟了,希望将其改进后再进行记录。早上趁着清醒,我如愿地改进了二叉树的删除功能,特此记录想法的美好瞬间。 1、二叉树的基本概念 二叉树的特点是每个结点至多有二棵子树,并且子树之间有左右之分。二叉树的其他特性可以参考博文链接,这里按照我自己的
2015-06-22 10:09:02 502
原创 哈希表系列:初探哈希,c语言实现
最初在阅读数据结构书籍时没有仔细看过哈希,潜意识认为太难了,应该用不到吧~但是,最近关注哈希表的原因是我在刷Leedcode时,有道题Two sum可以用哈希表求解,利用哈希特性“将庞大的数据进行压缩”,这就是哈希在处理大数据时的优势。1、哈希表基本概念 哈希表(Hash table,又叫散列表),是根据关键码值而直接进行访问的数据结构。我在这里将其抽象为“数组+链表”的复合
2015-06-20 10:14:04 3719
原创 c++系列:打印表达式树
昨晚看完>的第8章---一个面向对象程序范例,它对面向对象编程进行了很好的阐述,所以打算以博客的形式记录下来,方便以后阅读。1.问题描述 问题的核心就是由程序输出用来表示算术表达式的树。例如,表达式(-5)*(3+4)对应的树为: 我们希望调用合适的函数,然后打印出该
2015-06-15 12:20:31 1902
原创 LeetCode-Two Sum
正如上图给出的题目,要求在给定的数组内,寻找到两个数等于目标值,并返回数组的下标。针对此问题,我给出我首次编写的代码。/** * Note: The returned array must be malloced, assume caller calls free(). */int* twoSum(int* nums, int numsSize, int target) { in
2015-06-14 18:11:27 615 1
原创 LeetCode:String to Integer (atoi) -one solution coded by c language
时间:2015年6月14日,今天我开始写下我的第一篇博客,正如我博文的简介:记录想法的美好瞬间,也秉持着开源、共享的精神,我会继续坚持的走下去,去记录我成长的点点滴滴。好了,废话不说了,进入主题:如何实现atoi函数。 1、Myatoi思路分析 atoi函数是实现将字符串转化为整数的过程。但是,字符串里可以包含多种字符,比如数字、字母、空格和特殊字符(‘-’、‘+’、‘?’、‘*
2015-06-14 13:41:01 615
JavaScript.The.Definitive.Guide.6th
2014-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人