自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Longest Increasing Subsequence最长增长子序列

原题链接class Solution {public: int lengthOfLIS(vector<int>& nums) { int m = nums.size(); if(m==0||m==1)return m; vector<int> res(m,1); ...

2019-05-31 19:29:32 165

原创 Minimum ASCII Delete Sum for Two Strings

原题链接与这道题一样的解法(此处传送门)class Solution {public: int minimumDeleteSum(string s1, string s2) { int m = s1.size(),n = s2.size(); vector<vector<int>> dp(m+1,vector&...

2019-05-31 19:22:57 146

原创 Delete Operation for Two Strings

原题链接这道题可以说是最长公共子序列问题的翻版,套用状态转换方程:dp[i][j]表示子字符串word1[0,i),word2[0,j)的解I、当word1[i-1]==word2[j-1]时,dp[i][j]=dp[i-1][j-1];II、当word1[i-1] != word2[j-1]时,dp[i][j]=min(dp[i-1][j],dp[i][j-1])+1。时间复杂度是O...

2019-05-31 19:18:41 212

原创 Minimum Size Subarray Sum

原题链接使用两个变量begin和end来表示nums[begin,end]间所有元素的和,当和sum大于等于目标s时,开始收缩区间[begin,end]直到sum小于s,取得区间长度的最小值即为答案。class Solution {public: int minSubArrayLen(int s, vector<int>& nums) { int ...

2019-05-27 23:53:59 118

原创 Delete Columns to Make Sorted II

原题链接使用贪心算法class Solution {public: int minDeletionSize(vector<string>& A) { int n = A.size(),m = A[0].size(); int res = 0; for(int i=0;i<m;i++){ ...

2019-05-23 17:23:11 111

原创 N对括号的所有的有效组合

所谓括号的有效组合就是整体’ (’ 和 ‘)’ 的数量相等,并且在任何位置都需要保证 ‘(’ 的数量大于等于 ‘)’ 的数量,这个就是我们算法的主要思想了。#include<bits/stdc++.h>using namespace std;vector<string> res;void dfs(string s,int l,int r){ if(l==0&amp...

2019-05-23 00:26:30 959

原创 Course Schedule III

原题链接每一个pair(t,d)表示一个课程,t表示课程需要的时间,d表示该课程必须在时间d之前完成,要求返回最大可以完成的课程的数目。题目的标签为贪心,然后这道题又类似刘汝佳的竞赛书《算法竞赛入门》贪心算法部分关于区间问题的讨论,想到了要先对数组courses根据每个小区间的最后一个元素从小到大进行排序,接着遍历每一门课程,统计当前已经选择的课程所需要的总天数,在选完当前的课程时,判断是否...

2019-05-23 00:00:05 150

原创 Course Schedule

原题连接Course Schedule题目三连传送门:Course Schedule iiclass Solution {public: bool canFinish(int numCourses, vector<vector<int>>& pt) { queue<int> q; vector<in...

2019-05-22 10:42:25 85

原创 Course Schedule II

原题链接这道题就是典型的拓扑排序问题。简单说一下拓扑排序:对一个有向无环图G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。拓扑排序算法主要是循环执行以下两步,直到不存在入度为0的顶点为止。(1) 选择一个入度为0的顶点并输出之;(2) 从网中删除此顶点及所有出边。循环结束后,若输出的顶点数小于网中的顶...

2019-05-22 10:16:26 78

原创 Longest String Chain

原题链接一般来说这种求最长序列问题都可以用动态规划来解决,那么这道题也不例外。核心的思路是将用一长度的字符串都压到同一个栈中,然后从最长的字符串开始往最短的逐级计算最长序列。还有一个地方关键点是判断两个字符串是否是有效的,即字符串w1和w2是否为长度差1,并且往w1中任意位置插入一个字符就可以得到w2.关键是找到状态转换方程,在这道题里面,我们用map<string,int> ma...

2019-05-20 09:59:15 401

原创 Evaluate Reverse Polish Notation

原题链接这几天都在刷stack模块,感觉还行。这道题与括号匹配差不多,都是属于栈的经典例题。遍历整个tokens,判断当前的元素ch是否为操作符:如果不是,就调用stoi函数将ch转为数字类型,并压栈;否则两次出栈,分别得到两次的栈顶元素,进行相应的就算,最后返回栈顶。class Solution {public: int evalRPN(vector<string&...

2019-05-19 21:14:31 106

原创 Binary Tree Postorder Traversal

添加链接描述递归解法/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} ...

2019-05-19 20:53:08 76

原创 Simplify Path

原题链接详细解题思路看代码部分,主要是栈的使用class Solution {public: string simplifyPath(string path) { int idx = 0; //如果有超过2个‘/‘邻近,则去除后一个 while(idx<path.size()-1){ ...

2019-05-19 19:53:05 111

原创 Edit Distance

原题链接动态规划解决,dp[i][j] 表示 word1[1,i],word2[1,j]的edit distance状态转换方程为:word1[i-1]==word2[j-1] -> dp[i][j] = dp[i-1][j-1]word1[i-1]!=word2[j-1] -> dp[i][j] = min(dp[i-1][j],dp[i][j-1])+1clas...

2019-05-14 22:10:59 96

原创 valid-sudoku

题目链接遍历81个点,如果该点是数字则需要进行判断是否合格,如果是’.'则跳过判断到下一个点。class Solution {public: bool res; bool isValidSudoku(vector<vector<char>>& bd) { res= true; dfs(bd,0); ...

2019-05-14 21:56:42 82

原创 c++使用数组实现双链表list

List 是标准类库中的一个类,可以简单视之为双向链表,以线性列的方式管理物件集合。list 的特色是在集合的任何位置增加或删除元素都很快,但是不支持随机存取。list 是类库提供的众多容器(container)之一,除此之外还有vector、set、map、…等等。我们可以使用数组实现list。这里我只实现int类型的list,其他类型可以使用模板实现。这是list的方法#include...

2018-10-25 22:41:20 1554 1

原创 c++使用栈实现括号匹配

c++使用栈实现括号匹配给定一个表达式e,包含各种字符,如字母数字运算符标点空格和括号()[]{}等, 判断其中括号是否匹配,如是,则返回0, 否则根据错误类型返回1-3:错误类型包括1、2、3类型:类型1:左右括号不匹配,如"(]", “(((]))))”, “((}”,“let {x=a[0)*(b+c); y=b}”类型2:发现有左括号不存在与之匹配的右括号,如"(", “(([...

2018-09-27 17:22:51 5755

原创 c++栈的实现

最近在学习数据结构,栈在这里总结一下c++实现的栈几种方法:1.使用数组这是几种方法里面最为简单的方法,直接放代码:“`includeusing namespace std; template class arraystack { public: arraystack(); ~arraystack(); t peek(); t top(...

2018-09-09 13:48:47 1528

转载 使用python制作词云

这是我的第一篇的博客。这几天在学习制作python词云,下面的的代码是根据文本创建词云: import matplotlib.pyplot as plt from PIL import Image from wordcloud import WordCloud as wcimport numpy as np需要将读取方式选择为rb打开文件时需要输入正确路径with op...

2018-09-08 15:14:01 285

空空如也

空空如也

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

TA关注的人

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