摘要:
现实问题中有一类问题适宜用动态规划的思想去解决,这类问题有个显著特征就是求“最大xxx”、“最小xxx”,也就是求一个优化问题的解。通常这类问题都能够找到一个递归定义的递推公式,而能否高效地优雅地用动态规划解决问题的关键就在于这个递推公式的发现和定义。 尽管递推公式是按照递归的形式定义的,但实现上尽量用迭代加上一个查找表的形式实现,避免使用递归,能够显著减少代码量,从而减少出错的几率。 有两个...
阅读全文
posted @ 2015-06-08 21:48
Jadecity
阅读(615)
推荐(0)
摘要:
给定一个数组,里面的是任意整数,可能有重复,再给定一个目标T,从数组中找出所有和为T的K个数,要求结果中没有重复。 Note: Elements in a quadruplet (a,b,c,d) must be in non-descending order. (ie, a ≤ b ≤ c ≤ d) The solution set must not contain duplicate qu...
阅读全文
posted @ 2015-05-20 13:16
Jadecity
阅读(270)
推荐(0)
摘要:
Gray CodeThe gray code is a binary numeral system where two successive values differ in only one bit.Given a non-negative integer n representing the t...
阅读全文
posted @ 2015-05-20 13:03
Jadecity
阅读(139)
推荐(0)
摘要:
原始的题目是这样的: Single Number II Given an array of integers, every element appears three times except for one. Find that single one. 这道题可以扩展成其他数字出现K次,仅有一个数字出现一次。 当时这题想了很久,以mapping计数的方式当然很容易想到,这方法...
阅读全文
posted @ 2015-05-20 12:41
Jadecity
阅读(225)
推荐(0)
摘要:
计算机世界是二进制的世界,因此位操作非常快,如果能掌握清数字背后二进制的本质,那就非常有助于写出高效程序,有时也更加容易解一些实际问题。 位操作中一个非常奇特的操作是异或(C++ : ^),不像按位或和按位与那么直观,异或是同一个位置上两个数不同则为1,相同则为0。异或的奇特是隐藏在它简单定义背后的“内秀”。 第一个看到的异或的妙用是做两个数的交换。传统交换两个数是这样的 template
...
阅读全文
posted @ 2015-05-20 08:57
Jadecity
阅读(204)
推荐(0)