算法概要
算法是用于计算、数据处理和自动推理使用的。算法主要是做精确计算和表示一个有限长列的有效方法。算法一般包含清晰定义的指令用于计算函数。基本上也属于一种思考最简洁的方式。...
分类:
编程语言 时间:
2014-05-07 05:48:04
阅读次数:
518
【题目】
Chapter 1 | Arrays and Strings
原文:
1.1 Implement an algorithm to determine if a string has all unique characters. What if you can not use additional data structures?
译文:
实现一个算法来判断一个字符串中的字符...
分类:
其他好文 时间:
2014-05-07 04:27:41
阅读次数:
312
前言
学无止境。算法博大精深啊,一个贪心算法里面就隐含了这么多不同的场景实现,每个场景下的算法就有多种不同的实现,个人写法不一也成就了各种不同的漂亮算法,看了这些实现,也让我开拓了思维,这个世界的方案永远没有最完美的只有最合适的~ !
1、贪心算法概念
贪心算法也叫贪婪算法,当然叫法随意。主要目的是在问题求解时,做出最正确的判断= =,这不是贪心是啥?在计算机工程领域当中,就是说不考虑整体最优算法而是从局部做到最优解。当然贪心是算法不能对所有的问题都能得到整体都最...
分类:
编程语言 时间:
2014-05-07 03:32:27
阅读次数:
859
树
学习目标
理解什么是树及使用方法 学会使用树实现映射 用列表实现树 用类和引用实现树 用递归实现树 用堆实现优先队列
树的例子
前面我们学习过栈和队列这类线性数据结构,并且体验过递归,现在我们学习另一种通用数据结构,叫做树。树在计算机科学中应用广泛,象操作系统、图形学、数据库系统、网络等都要用到树。树和他们在自然界中的表哥——植物树——非常相似,树也有根,有分枝,有叶子...
分类:
编程语言 时间:
2014-05-06 23:24:22
阅读次数:
447
首先是活动安排问题。
贪心的关键在于排序策略。
思路很简单,对所有活动的结束时间排序,如果结束时间相同,因为要尽量多的参加活动,所以选取开始时间尽量晚的(这样可以安排的比较多),然后依次从早到晚选取不冲突的活动加入,即为最多可以参加的活动。
#include
#include
#include
#include
#include
using namespace std;
clas...
分类:
其他好文 时间:
2014-05-06 23:01:00
阅读次数:
394
1、
??
Candy
There are N children standing in a line. Each child is assigned a rating value.
You are giving candies to these children subjected to the following requirements:
Each child must h...
分类:
其他好文 时间:
2014-05-06 22:41:02
阅读次数:
427
这种题一看,立马就会想到递归,但直接递归的代价太大了,当字典里的单词长度很小,而单词长度很长时,肯定会超时的。再仔细想一下,是不是每次递归验证都是有必要的呢?如果从i位置开始已经被验证为不行了,那么其他递归分支走到这个位置的时候就不用走了,因为肯定是死胡同。想到了打表,把不行的位置记录下来,速度显著提高。
下面说一点实现的事情,记录一个位置行不行,用map最简单直接,查找速度也快。每次选择步长的...
分类:
其他好文 时间:
2014-05-06 19:19:47
阅读次数:
253
1、新站考核期
百度算法的更新对新站的收录也越来越严了,一周收录首页,两周开始收录内页已经成为常见的情况,并且内页收录速度非常慢。想要达到成百上千的收录量至少也得花费一个月以上的时间,近期我做的几个新站都是这样。一般新站考核期为三个月,3个月内收录不会变动太大,会在一定区间反复波动。当站长遇到这种....
分类:
Web程序 时间:
2014-05-06 17:55:11
阅读次数:
418
简单的说,递归就是函数自己调用自己。在数据结构里面会经常使用递归,因为递归代码比较简洁优雅,易懂。编写递归程序时主要注意三点(1)递归总有一个最简单的情况,方法的第一条语句总是包含return的条件语句(2)递归调用总是去尝试解决一个规模更小的子问题,这样递归才能..
分类:
其他好文 时间:
2014-05-06 15:46:13
阅读次数:
289