C-C++
Boyce_L
这个作者很懒,什么都没留下…
展开
-
C++如何读取任意数目的整数
要求: 读取整数,按enter结束输入 在C/C++中,一系列的简单数据是存储在数组里,而且,针对输入,一般要知道输入的数据个数,用for循环迭代, 又或者给定一个结束标志的输入,当输入为结束标志时,停止循环输入(比如, 输入0结束输入). 然而,当既没有结束输入的输入标志,又要求输入不定数目的整数,这时候就不能按最简单的方式输入了.思路:利用字符串流sstream, 先读取一行字符到字符串流中原创 2016-09-29 17:05:17 · 5059 阅读 · 1 评论 -
leetcode 688. Knight Probability in Chessboard
题目688. Knight Probability in Chessboard 等级: hard思路使用动态规划,对于N*N的方格,外围扩展两层,变成(N+4)(N + 4), 对于外围的两层, df[][][] = 0; df[i][j][k] = sum(df[i + di][j + dj][k - 1])/8.0实现# include <iostream># include <vecto原创 2017-12-17 21:53:41 · 408 阅读 · 0 评论 -
leetcode 698. Partition to K Equal Sum Subsets
题目链接:698. Partition to K Equal Sum Subsets 等级: medium思路直接使用dfs深搜,深搜过程中,记录以及匹配完全的子集合个数,以及深搜当前状态下的和等实现# include <iostream># include <vector>using namespace std;/*Given an array of integers nums and a原创 2017-12-17 15:46:40 · 297 阅读 · 0 评论 -
leetcode 452. Minimum Number of Arrows to Burst Balloons
题目452. Minimum Number of Arrows to Burst Balloons 等级: medium 标签:贪心思路对pair,以第一个元素为第一排序准则,第二个元素为次要准则排序。 然后从小到大扫描,寻找连续的有交叠部分的pair,然后销毁,计数加一,继续此操作至尾部,计数结果即为答案实现# include <iostream># include <Vector>#原创 2017-12-22 21:49:57 · 288 阅读 · 0 评论 -
leetcode 406. Queue Reconstruction by Height
题目406. Queue Reconstruction by Height等级:medium 标签:贪心思路现对people数组基于pair的第一个元素(身高)排序,身高从小到大,逐一将people[i]放到结果vector的合适位置,放置方法是,对于结果vector,从左往右跳过people[i].second个有效位置(即还未放置pair的位置,或该位置已经放置了一个pair, 但是pair.原创 2017-12-21 00:38:33 · 266 阅读 · 0 评论 -
leetcode 122. Best Time to Buy and Sell Stock II
题目122. Best Time to Buy and Sell Stock II 标签: 贪心思路找到除了第一个点的所有峰值,然后,对于每一个峰值,减去与前一个峰值(包括第一个点,如果它也是峰值的话)之间的山谷值得到差值,将所有的差值加起来就是最大收益实现# include <iostream># include <vector>using namespace std;class Solut原创 2017-12-20 13:58:44 · 190 阅读 · 0 评论 -
leetcode 455. Assign Cookies
题目455. Assign Cookies 等级: easy 标签: 贪心思路对g数组和s数组从小到大排序,然后开始从左到右扫描,找到满足当前的s元素大于等于当前g元素时候,个数加一实现# include <iostream># include <vector># include <algorithm>using namespace std;class Solution {public:原创 2017-12-20 12:55:11 · 216 阅读 · 0 评论 -
leetcode 64. Minimum Path Sum
64. Minimum Path Sum等级: medium 标签: 动态规划思路使用dp[i][j]表示从grid[i][j]到grid[m][n]的最小cost dp[i][j]=⎧⎩⎨⎪⎪⎪⎪⎪⎪grid[i][j]grid[i][j]+dp[i+1][j]grid[i][j]+dp[i][j+1]min{grid[i][j]+dp[i+1][j],grid[i][j]+dp[i][j+1原创 2017-11-17 18:28:09 · 204 阅读 · 0 评论 -
leetcode 718. Maximum Length of Repeated Subarray
题目718. Maximum Length of Repeated Subarray 等级:medium 标签: 动态规划思路类似LCS(最长公共字串)的处理方法。使用动态规划 定义dp[i][j] 表示以X[i]和Y[j]作为匹配的最长子数组的最后一个元素的长度,注意,这里X,Y所以都是从1开始,也就是dp[0][*] 表示第一个子数组是空串。时间复杂度为O(n)dp[i][j]=⎧⎩⎨0d原创 2017-11-17 17:40:27 · 301 阅读 · 0 评论 -
DES的C++实现
/** * author: boyce * date: 2017-10-7 * description: DES */# include <iostream># include <cstring># include <string># include <vector># include <bitset>using namespace std;class DES {public:原创 2017-10-08 15:52:27 · 810 阅读 · 0 评论 -
二分查找的几种不同的实现
不多说,直接上代码,注释解释清楚了# include <iostream># include <vector># include <cstring># include <string># include <sstream># include <istream>using namespace std;//////////////////////////////////////////////原创 2017-09-11 21:10:39 · 332 阅读 · 0 评论 -
leetcode 516. Longest Palindromic Subsequence
题目链接 516. Longest Palindromic Subsequence等级: medium思路动态规划, df[i][j]表示 s[i … j] 的最长回文字串长度 df[i][j] = max(df[i + 1][j], df[i][j - 1], df[i + 1][j - 1] + 2), if s[i] == s[j]; df[i][j] = max(df[i + 1][j]原创 2017-12-17 23:06:59 · 170 阅读 · 0 评论