摘要:
1. Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory? 阅读全文
2014年3月25日 #
2014年3月24日 #
摘要:
1. 约瑟夫(环)问题。
2. 不用加减乘除求两个整数的和。
3. 不用任何中间变量交换两个变量 a 和 b 的值。 阅读全文
摘要:
问题描述:皇帝决定找出全国中最幸运的一个人,于是从全国选拔出 n 个很幸运的人,让这 n 个人围着圆桌进餐,可是怎么选择出其中最优秀的一个人呢?皇帝决定:从其中一个人从 1 开始报数,按顺序数到第 m 个数的人自动出局,然后下一个人从 1 开始报数……。如此直到最后只剩下约瑟夫一人,然后他就成为全国最幸运的人。请问约瑟夫最初的位置?(注:原问题略显暴力,故自创此趣味题目)
……1. 模拟法(simulation)……………………2.建模法(modeling)………………3.动态规划…………4. 数学方法…………………… 阅读全文
2014年3月22日 #
摘要:
解决方法:
1.牛顿法(Newton's method)
2. 分治法(Divide and conquer)
a = 0 时,返回 0.
a = 1 时,返回 1.
a > 1 时,返回的数在序列 1 与 a/2 之间,序列有序,所以可以用二分法查找。 阅读全文
摘要:
要求:Median of Two Sorted Arrays (求两个排序数组的中位数)
分析:1. 两个数组含有的数字总数为偶数或奇数两种情况。2. 有数组可能为空。
解决方法:
1.排序法
时间复杂度O(m+n),空间复杂度 O(m+n) 阅读全文
摘要:
何为回文字符串? A palindrome is a string which reads the same in both directions. For example, “aba” is a palindome, “abc” is not.
1.暴力法(Brute force solution)
共 C(N, 2) 个子串。时间复杂度O(N3)
2.后缀树法(Suffix tree solution)
3.动态规划法(Dynamic programming solution)
4.更简单的方法
5.Manacher’s Algorithm 阅读全文
2013年5月10日 #
摘要:
switch:只能在最后一个 case 标号(无default)或 defaul 标号后定义变量:此规则是为了避免出现跳过变量的定义和初始化的情况。 如果需要为某个特殊的 case 语句定义变量,可引入块语句。
异常机制:try 块和异常处理 阅读全文
2013年5月5日 #
摘要:
new 和 delete 表达式:
耗尽内存:
自由存储区总有可能耗尽,new表达式就有可能失败,无法获取需要的内存空间,系统将抛出名为 bad_alloc 的异常。
1.动态创建和释放数组。
2.创建和释放单个对象 阅读全文
2013年4月26日 #
摘要:
const用法详解
面向对象是C++的重要特性.
但是c++在c的基础上新增加的几点优化也是很耀眼的
就const直接可以取代c中的#define
以下几点很重要,学不好后果也也很严重
const
1. 限定符声明变量只能被读
const int i=5;
int j=0;
...
i=j; //非法,导致编译错误
j=i; //合法 阅读全文