自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++ 利用make_heap建立小根堆

利用make_heap建立小根堆,首先要#include vector mm85; mm85.push_back(4); mm85.push_back(1); mm85.push_back(7); mm85.push_back(2); mm85.push_back(5); mm85.push_back(8); mm85.push_back(3); mm85.push_back(

2016-06-23 17:44:10 2112

原创 LeetCode 140 Word Break II--In C++

思路:首先想到的是递归的解法,但是考虑到TLE的问题,此路不通。其次是动态规划的版本,结合139 Word Break ,只需扩展那个动态数组就可以了。139中用一个bool数组表示dp[i]之前的串能否形成切分。那么在这个问题中,可以将最后一个成功切出来的单词挂在i角标的下面。这时,最好用一个vector的数组来存储最后一个切下的单词。这样先用动态规划扫一遍之后,会得到上图的结构。

2016-06-21 09:46:53 563

原创 LeetCode 132 Palindrome Partitioning II--In C++

思路:因为做了上一道Palindrome Partitioning,所以一个很简单粗暴的做法就是在上题基础上修改,然而这注定是要TLE的。因为问题的需求已经不一样了,在这道题中只问切分多少次能够产生所有子串为回文的效果。全程只需要保留一个数字即可。想到了动态规划。考虑了很多状态的表示法,都不怎么可行。最后想到了用一个数组cp来表示在字符串s中角标i和i之后的部分需要切cp[i-1]次。

2016-06-18 11:15:51 449

原创 LeetCode 115 Distinct Subsequences--In C++

思路:这个问题让人联想到最长公共子序列的问题,因此可以用动态规划的问题来解决。最难的部分在于状态迁移的实际含义,这点好推出来,却很难理解。和最长公共子序列的问题一样,用dp[i][j]的数组来表示状态,含义为在s中取i个字符,在t中取j个字符,s中i个字符能够得到多少个t中j个字符组成的序列。很明显当j大于i时,结果一定为0。当j等于0时,结果一定为1。这就是边界条件了。同时注意到,当

2016-06-12 11:31:19 260

原创 LeetCode 90 Subsets II--In C++

思路:由于这道题增加了冗余的属性,所以如果用Subset 1中的暴力递归进行求解的话,会浪费很多时间在扫描判断是否有重复值上。因此,类似于全排列的那个题,想到了在之前的基础上添加一个元素即可形成全新的子集的思路。用一个vector>> newadd变量来记录:每增加一个元素,就增加的子集。举例:比如1,2,2这三个元素。首先newadd中加入一个空集。当1加入之后,增加了{

2016-06-04 16:01:54 562

工程优化算法

代码采用c++语言编辑,包含了0.618法,牛顿法,二次插值等工优经典算法

2015-05-11

空空如也

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

TA关注的人

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