自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 问答 (3)
  • 收藏
  • 关注

原创 leetcode Jump Game I II

Jump Game思路:若数组的第k个点能到达,则第k-1个点也一定能够到达,因此我们可以遍历数组,找到不能到达的点就返回falsebool canJump(vector<int>& nums) { if(nums.size()==0) return false; if(nums.size()==1) return tru

2019-01-23 14:48:28 143

原创 leetcode Best Time to Buy and Sell Stock I II III IV

Best Time to Buy and Sell Stock遍历一次数组,记录最小值,每次计算与最小值之间的差值为利润,最后选取利润最大的。int INF=0x7ffffffe;int maxProfit(vector<int>& prices) { int min=INF; int profit=0; int tmp; for (...

2019-01-23 14:18:37 239

原创 分治法:棋盘覆盖问题

1、 分治法摘自中科大算法导论课程资料 :当求解的问题较复杂或规模较大时,不能立刻得到原问题的解,但这些问题本身具有这样的特点,它可以分解为若干个与原问题性质相类似的子问题,而这些子问题较简单可方便得到它们的解,因此通过合并这些子问题的解就可得到原问题的解。2、思路:1)将问题分解为规模更小的子问题;2)解决这些子问题;3)将已解决的子问题合并,求出原问题的解。3、经典例子:快...

2019-01-17 16:40:54 816

原创 【背包问题】恰好装满

前面总结了背包问题的三种情况还有一种问题:要求背包恰好装满的情况。在对二维数组初始化时:1)v[0][0]初始化为02)第一行和第一列的其他值都设为-INF(未装满的状态)原因:1)占用空间为0的物品刚好可以装满空间为0的背包2)只有上一层恰好装满时,使用状态方程得到的下一层才能是正好装满,因此初始值设为-INF,即上一层未装满时,下一层加入a[i]结果仍然是-INF即未装满。同样...

2019-01-06 14:50:50 5543 1

原创 【背包问题】01背包 多重背包 完全背包

01背包0-1背包问题是指每一种物品都只有一件,可以选择放或者不放。方法一V(i,j)表示前i种物品恰放入一个容量为j的背包的最大价值,因此状态转移方程:j<w(i) V(i,j)=V(i-1,j)j>=w(i) V(i,j)=max{ V(i-1,j),V(i-1,j-w(i))+v(i) } for(int i = 0; i <= ...

2019-01-06 14:40:13 962 1

原创 判断链表是否为回文结构

给定一个链表的头节点 head,请判断该链表是否为回文(正反结构相同)结构。如果链表长度为 N,时间复杂度达到 O(N),额外空间复杂度达到 O(1)。参考:《程序员代码面试指南》解法一放入栈,时间复杂度O(n),空间复杂度O(n)bool isPalindrome1(Node *head){ stack<Node> s; Node *cur = head;...

2019-01-02 17:05:24 167

空空如也

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

TA关注的人

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