自定义博客皮肤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)
  • 收藏
  • 关注

原创 Leetcode698.划分为k个相等的子集

题目: 解题思路: 首先这道题使用的深度优先搜索算法,通过分析题目可知,如果一个数组能分成k个总和相同的子集,那么首先我们要知道数组的总和除以k是否得到一个整数part_sum,这个part_sum就是我们子集的总和,如果除以k得不到一个整数,说明数组不可能划分,直接排除。所以当数组可以划分的情况下,使用深度搜索,从数组的第一个元素开始累加,如果大于目标总和,就递归返回,表示这个数不在对应子集中...

2019-03-03 11:45:09 485

原创 Leetcode932.漂亮数组

题目: 解题思路: 使用递归的方法。由题目可知,给定一个N,给出符合条件的排列。递归使大问题变成小问题,将N缩小,缩小到可以轻松解决的的大小,所以当N为1时,递归结束,返回1.如何将结果合并呢?我们知道当某个数组排序符合条时,假设该数组为A,那么kA+n也是符合条件的数组,k是A的倍数,也就是说A的线性组合也是符合条件的。根据这个原理可知,N被缩小多少倍,就将得到的子结果扩大多少倍。代码如下: ...

2019-03-02 15:26:46 418

原创 Leetcode23.合并K个排序链表

题目: 解题思路: 这道题使用的是分治算法。首先还用辅助函数mergeTwoLists(…)用来合并两个有序单链表,不申请额外的空间实现原地合并。 代码如下: ListNode*mergeTwoLists(ListNode*l1,ListNode*l2){ ListNode*nexthead; ListNode*head; if(l1==NUL...

2019-03-02 13:33:41 118

原创 Leetcode240.搜索二维矩阵

题目: 解题思路: 将二维数组看做一个矩形,选取矩形的右上角数字,当选取的数字刚好和要查找的数字相等时,结束查找过程。如果选取的数字小于要查找的数字时,那么根据数组排序的规则,要查找的数字应该在所选择的数字的右边或者下边,因为所选择的数字已经是最右边的数字,所以要查找的数字只可能出现在所选择的数字的下边,于是剔除这个数字所在的行。如果所选择的数字大于要查找的数字,要查找的数字只可能出现在该数字的...

2019-03-01 21:15:21 122

原创 Leetcode312.戳气球

题目: 解题思路: 首先这道题使用的是动态规划方法; 根据题目可知,当我们戳破一个气球时,该气球左右的两个气球变成相邻的两份气球,即题目中的nums[left]和nums[right];我们创建一个新的数组,新数组的第一个元素和最后一个元素都是1,代表室不是真实存在且不能被戳破的气球,新数组的其他元素和原数组相同。当我们要求最大获取金币数时,就是在区间为【0,size+1】选择戳气球的方案使得金...

2019-03-01 20:27:02 195

原创 Leetcode53.最大子序和

Leetcode53.最大子序和 题目如下: 这道题我才用了分治法去做: 利用局部最优解求得全局最优解; 代码如下: class Solution { public: int maxSubArray(vector<int>& nums) { if(nums.size()==0){ return 0; } ...

2019-02-28 21:08:05 152

空空如也

空空如也

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

TA关注的人

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