自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 utf8编码原理详解

转自:https://blog.csdn.net/baixiaoshi/article/details/40786503

2018-06-01 11:43:33 1437

转载 HTTP协议详解

转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspxhttp://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html引言HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于19

2017-10-11 19:46:30 309

转载 函数是如何调用的

转自:http://www.cnblogs.com/orlion/archive/2015/12/20/5062165.html一、局部变量与全局变量  函数中出现的变量可以分为局部变量和全局变量,在函数内部定义的变量(没有global语句)就是局部变量,只有在函数内部才能够使用它们。在函数外定义的变量就是全局变量全局变量的作用是增加了函数间数据联系的渠道,全局

2017-08-28 16:24:10 973

转载 C++虚函数的实现机制

转自:http://blog.csdn.net/neiloid/article/details/6934135C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模

2017-08-28 15:12:10 376

转载 树状数组求解逆序问题

关于树状数组相关问题,通过这几篇博文有了认识,转载自:http://blog.csdn.net/int64ago/article/details/7429868http://www.cnblogs.com/Penn000/articles/5758324.htmlhttp://www.cnblogs.com/xiongmao-cpp/p/5043340.html一、树状

2017-08-27 15:53:56 188

转载 常见比较排序算法的实现

转自:http://blog.csdn.net/chengzi_comm/article/details/51429165这篇博客主要实现一些常见的排序算法。例如: //冒泡排序 //选择排序 //简单插入排序 //折半插入排序 //希尔排序 //归并排序 //双向的快速排序(以及快速排序的非递归版本) //单向的快速排序 //堆排序

2017-08-25 18:18:17 189

转载 计数排序、基数排序和桶排序

看到一个大神写的,感觉写的非常好,就转过来学习,转载地址:http://www.bianceng.cn/Programming/sjjg/201412/47166.htm前言最后三种排序算法了,由于都不是基于比较的排序,因此这三种排序算法可以以线性时间运行。但是因为限制条件的特殊性,因此应用面没有基于元素比较的排序算法广,但是在很多特定的情况下还是蛮有用途的,而且效率极

2017-08-25 17:17:47 177

原创 将数组分成m个子数组,使子数组和的最大值最小

题目:一个int型数组,数组元素代表每件事工人工作时长,现有m个工人,这些工人可以同时工作,问最短多久工作可以完成解题思路:逆向思维,先将所有数组总和sum求出,然后看sum/2的g工作时长由几个工人同时可以完成,如果需要的人数小于设定,每人可以用时更少,然后选sum/2/2在比,如果需要的人数大于设定,每人用时要更多,要在sum/2~sum中二分。以此类推,利用二分查找法

2017-08-23 13:15:35 8242

原创 蓄水池问题

蓄水池算法【题目】有一个机器按自然数序列的方式吐出球(1号球,2号球,3号球,……),你有一个袋子,袋子最多只能装下K个球,并且除袋子以外,你没有更多的空间。设计一种选择方式,使得当机器吐出第N号球的时候(N>K),你袋子中的球数是K个,同时可以保证从1号球到N号球中的每一个,被选进袋子的概率都是K/N。举一个更具体的例子,有一个只能装下10个球的袋子,当吐出100个球时,袋子里有10

2017-08-23 10:50:08 692

原创 折纸问题

题目】请把一段纸条竖着放在桌子上,然后从纸条的下边向上方对折1次,压出折痕后展开。此时折痕是凹下去的,即折痕突起的方向指向纸条的背面。如果从纸条的下边向上方连续对折2次,压出折痕后展开,此时有三条折痕,从上到下依次是下折痕、下折痕和上折痕。给定一个输入参数N,代表纸条都从下边向上方连续对折N次,请从上到下打印所有折痕的方向。例如:N=1时,打印:downN=2时,打印:down

2017-08-23 09:50:07 632

原创 将一个字符串数组中的字符串拼接出来,使得字典序最小

此题不能直接将字符串排序直接拼接,而是要自己编写sort中的cmp函数,找到a+b与b+a的最小JAVA程序:package problems_2017_08_21;import java.util.Arrays;import java.util.Comparator;public class Problem_04_LowestLexicography {

2017-08-22 17:03:58 986

原创 判断是否是搜索二叉树

判断一棵二叉树是否为搜索二叉树和完全二叉树【题目】给定一个二叉树的头节点head,已知其中没有重复值的节点,实现两个函数分别判断这棵二叉树是否是搜索二叉树和完全二叉树。解题思路:搜索二叉树的中序遍历是递增的,所以我们利用Morris进行中序遍历,判断是否递增即可,只要中间有不是递增,就不是搜索二叉树JAVA程序:import java.util.LinkedList;

2017-08-22 14:59:12 313

原创 判断是否是平衡二叉树

判断二叉树是否为平衡二叉树【题目】平衡二叉树的性质为:要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过1。给定一棵二叉树的头节点head,判断这棵二叉树是否为平衡二叉树。解题思路:判断是否是平衡二叉树从两点入手:1、节点左子树和右子树是否是平衡二叉树2、节点左子树和右子树的高度差是否不大于1JAVA程序:package problems_2017_08

2017-08-22 14:05:59 250

原创 Morris遍历求解二叉树前中后序遍历

前面博文中曾讲过用递归和递推的方法遍历,这两种方法因为要用到栈来记录,所以时间复杂度O(n),空间复杂度O(n)Morris遍历利用了叶节点的悬空指针帮助遍历,模仿递归遍历三次访问节点过程,但是他只能做到若节点有左孩子,实现两次访问,若无左孩子,实现一次访问。所以在后续遍历时,要利用翻转链表的方法对右子树逆序打印。Morris遍历思想:1、若节点node无左子树,node向右指

2017-08-22 12:39:18 492 1

转载 static用法

转自:http://www.cnblogs.com/BeyondAnyTime/archive/2012/06/08/2542315.html

2017-08-21 11:40:10 138

原创 滑动窗口求满足的子数组个数

题目:给定数组arr和整数num,返回有多少个子数组满足如下情况:max(arr[i..j]) - min(arr[i..j]) max(arr[i..j])表示子数组arr[i..j]中的最大值,min(arr[i..j])表示子数组arr[i..j]中的最小值。如果数组长度为 N,请实现时间复杂度为 O(N)的解法。解题思路:

2017-08-19 17:43:25 375

原创 单调栈运用

题目:给定一个整形矩阵 ,其中数值只有0和1两种,求其中全是1的所有矩形中,最大矩形区域1的数量。如:1 1 1 0其中最大矩形区域有3个1,所以返回31 0 1 11 1 1 11 1 1 0其中最大矩形区域有6个1,所以返回6解题思路:建立一个数组,里面存储矩阵的行,将其中的数据表示直方图的高度,运用单调栈找每个数离他最近且小于他的数。时间复杂度O(n*

2017-08-19 16:32:06 193

转载 递归转动态规划

转自http://blog.csdn.net/baidu_28312631/article/details/47418773

2017-08-05 20:25:19 230

转载 并查集

转自http://blog.csdn.net/dellaserss/article/details/7724401/首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。像畅通工程这题,问还需要修几条路,实

2017-08-03 21:55:20 130

原创 约瑟夫环

2017-08-03 21:36:24 192

转载 bfs宽度遍历

出处:raphealguo@CSDN:http://blog.csdn.net/raphealguo1.前言广度优先搜索(也称宽度优先搜索,缩写BFS,以下采用广度来描述)是连通图的一种遍历策略。因为它的思想是从一个顶点V0开始,辐射状地优先遍历其周围较广的区域,故得名。 一般可以用它做什么呢?一个最直观经典的例子就是走迷宫,我们从起点开始,找出到终点的

2017-08-02 09:37:01 158

原创 bfprt算法原理和复杂度估算

在文章开头先了解随机快速排序,随机排序之前博文中有,在此增加快速排序中partition函数,参照http://www.cnblogs.com/sdlwlxf/p/5131793.htmlMaster公式:用于算复杂度此公式只适用于每次递归量相同的情况,可以简化理解为一下过程:a表示递归的次数,b表示递归规程中每次递归缩小是的数据量,n^d为递归后续行为的复

2017-08-01 10:08:30 1514

转载 字符串匹配的KMP算法

http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html

2017-07-31 17:55:34 182

转载 快速排序和随机快速排序

转载出处http://blog.csdn.net/always2015/article/details/46523531一、问题描述实现对数组的普通快速排序与随机快速排序 (1)实现上述两个算法 (2)统计算法的运行时间 (3)分析性能差异,作出总结二、算法原理:1、快速排序快速排序是对冒泡排序的一种改进。它的基本思想是:选取一个基准

2017-07-31 16:27:57 350

原创 左神面试算法整理--二叉搜索数最大拓扑结构

算法思想:建立一个拓扑贡献记录,每个节点左右两侧的值为对于某个节点,此节点拓扑贡献数,如下图:从图中可以看出,所有的叶子节点对于5来说,他左右两边对5的拓扑贡献均为0,因为他左右两边没有节点。a图中,在3处来说,对于5来说2符合二叉搜索树的条件,所以他贡献一个,同理4也贡献一个,所以3左右两边各一个。3节点自身也贡献一个,对于5来说左边的节点贡献了3个。右边同理。图b,12

2017-07-28 20:47:27 425

原创 左神面试算法整理--二叉树前、中、后序遍历

【题目】用递归和非递归方式,分别按照二叉树先序、中序和后序打印所有的节点。我们约定:先序遍历顺序为根、左、右;中序遍历顺序为左、根、右;后序遍历顺序为左、右、根。算法思想:前中后序遍历有递归和非递归两种方法,在此主要讲非递归的方法在遍历中我们利用栈来辅助非递归。在前序遍历中要实现的顺序是头左右,但由于栈的特性是后进先出,所以压入节点的顺序为头右左。中序遍历实现左头右,先

2017-07-28 20:11:31 277

原创 左神面试算法整理--最大子串和

算法思想:当一个数组中有一个子串它的累加和是最大的,那么它不存在一个前缀或是后缀是负数,如果存在的话,它就不是最大和,因为出去前缀或是后缀他的值会更大。因此此题的解题思路就是找有效的前缀,只要前缀是大于0的,都有可能成为最大和的一部分,当前缀小于0时,就将其舍弃,从下一位置重新开始。在寻找的过程中,用max记录前缀出现的最大值,这个最大值,也就是最大累加和值。JAVA版

2017-07-27 17:14:34 461

原创 左神面试算法整理--栈的逆序

算法思路:建立两个栈,一个f,一个p。f实现找出栈中最底部的元素并返回。p利用递归和f函数,将从栈顶元素依次压入栈中实现逆序。int f(stack a){int result=a.top();    a.pop();if(a.empty())return result;else{int last=f(a);a.push(result);return

2017-07-27 10:56:11 273

原创 左神面试算法--哈希表

【题目】工程师常使用服务器集群来设计和实现数据缓存,以下是常见的策略:1.无论是添加、查询还是删除数据,都先将数据的id通过哈希函数转换成一个哈希值,记为key。2.如果目前机器有N台,则计算key%N的值,这个值就是该数据所属的机器编号,无论是添加、删除还是查询操作,都只在这台机器上进行。请分析这种缓存策略可能带来的问题,并提出改进的方案。算法思想:哈希函

2017-07-25 17:17:53 614

原创 左神面试算法整理---单调栈

【题目】小B负责首都的防卫工作。首都处于一个四面环山的盆地中,周围的n个小山构成一个环,作为预警措施,小B计划在每个小山上设置一个观察哨,日夜不停的瞭望周围发生的情况。一旦发生外敌入侵事件,山顶上的岗哨将点燃烽烟。若两个岗哨所在的山峰之间的那些山峰,高度都不大于这两座山峰,且这两个山峰之间有相连通路,则岗哨可以观察到另一个山峰上的烽烟是否点燃。由于小山处于环上,任意两个小山之间

2017-07-25 17:15:34 4473

空空如也

空空如也

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

TA关注的人

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