- 博客(25)
- 资源 (3)
- 问答 (2)
- 收藏
- 关注
原创 父进程和子进程之间的关系
在程序设计时,某一个具体的功能模块可以通过函数或是线程等不同的形式来实现。对于同一进程而言,这些函数、线程都是存在于同一个地址空间下的,而且在执行时,大多只对与其相关的一些数据进行处理。如果算法存在某种错误,将有可能破坏与其同处一个地址空间的其他一些重要内容,这将造成比较严重的后果。为保护地址空间中的内容可以考虑将那些需要对地址空间中的数据进行访问的操作部分放到另外一个进程的地址空间中运行,并且只...
2020-02-26 21:47:55 4155
原创 零钱问题 动态规划
题目:面额为1,3,5,7四种,给定8块钱,用四种面额的钱组合成8块,并且组合钱的数量要最少。方法一:暴力破解int m[] = {0,1,3,5,7};int dp(int n){ if (n == 1 || n == 3 || n == 5 || n == 7) return 1; int ans = INT_MAX; for (int i = 1; i <= ...
2020-02-19 11:56:59 345
原创 5.最长回文子串
思路:动态规划,时间复杂度O(n^2)对于所给的字符串s,假设dp[i][j]=true表示字符串s[i...j]是回文子串,那么dp[i+1...j-1]必定也为true。则求解最长回文子串就可以分解成一系列子问题,并通过动态规划来求解了。状态转移方程:上述状态转移方程表示,当s[i]==s[j]时,如果s[i+1...j-1]是回文子串,则s[i...j]也是回...
2020-02-16 10:34:43 68
原创 3.无重复字符的最长子串
思路:题目要求最长的子串中无重复的字符,接着就是用滑块的方法实现。例子:abcabcbb,一开始滑块包含了abc这一字符串,长度为3,记录下来。当s[i]=a时就发生重复字符a,滑块就从left删除字符直到没有a字符,删除后字符串为bc,在把a字符加入,此时字符串为bca,长度为3,记录下来。接着滑块继续往右扩张,s[i]=b时候发生重复字符串b,重复上述操作。知道扩张结束。比较记录的长度中...
2020-02-15 18:39:20 70
原创 2.两数相加
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* a...
2020-02-15 09:53:03 60
原创 306.累加数
class Solution {public: bool isAdditiveNumber(string num) { string first, second,last; for (int len1 = 1; len1 <= num.size() / 2; len1++) { first = num.substr(0,len1); for (int le...
2020-02-14 17:43:04 84
原创 746.使用最小花费爬楼梯
class Solution {public: int minCostClimbingStairs(vector<int>& cost) { int n = cost.size(); vector<int> res(n+1,0); for (int i = 2; i <= n; i++) res[i] = min(res[i...
2020-02-12 18:42:22 138
原创 766.托普利兹矩阵
class Solution {public: int m, n; bool isToeplitzMatrix(vector<vector<int>>& matrix) { m = matrix.size(); n = matrix[0].size(); for (int i = 0; i < m - 1; i++) for (...
2020-02-11 18:07:42 281
原创 697.数组的度
第一步:首先还是利用HashMap类来统计各个数字出现的次数,将数值和次数分别作为key和value存入HashMap。第二步:找到频率最大的那几个数值(可以是一个也可以是多个数值),然后每一个分别用双指针方法找到在数组中第一次和最后一次出现的位置,找到他们中距离最小的那个,返回这个距离。class Solution {public: int findShortestS...
2020-02-10 23:12:31 212
原创 696.计数二进制子串
看了一下别人这个思路就比较巧妙了。就是统计连续的0或者1的个数存进一个数组,那么总的组合数就是相邻的个数的最小值的加和。举个例子来说:比如001101000这个字符串,那么统计数组中的值应该是2,2,1,1,3那么总的次数就是min(2,2)+min(2,1)+min(1,1)+min(1,3),因为要找的是1和0相等的组合,所以一定在交界处出现,并且个数等于0和1中最小的那个,...
2020-02-10 22:28:02 150
原创 686.重复叠加字符串匹配
class Solution {public: int repeatedStringMatch(string A, string B) { string s = A; int cnt = 1; while (s.size() < B.size()) { s += A; cnt++; } if (s.find(B) == s.npos) {...
2020-02-10 17:12:52 170
原创 680.验证回文字符串II
思路:多次尝试就行。恶心的一道题class Solution {public: bool validPalindrome(string s) { int i, j; i = 0; j = s.size() - 1; bool flag1, flag2; flag1 = true; flag2 = true; while (i < j) { i...
2020-02-09 18:04:14 120 1
原创 647.最长连续递增序列
class Solution {public: int findLengthOfLCIS(vector<int>& nums) { int sum = 0,cnt=1; for (int i = 0; i < nums.size(); i++) { if (i + 1 < nums.size()) { if (nums[i...
2020-02-09 14:56:45 88
原创 671.二叉树中第二小的节点
struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; class Solution { public: int min1, min2; ...
2020-02-09 14:02:17 384
原创 653.两数之和IV-输入BST
class Solution {public: vector<int>m; bool findTarget(TreeNode* root, int k) { preOrder(root); sort(m.begin(), m.end(), less<int>()); int i,j,sum; i = 0; j = m.size()-1; ...
2020-02-04 22:16:34 200
原创 643.子数组最大平均数I
方法一:class Solution {public: double findMaxAverage(vector<int>& nums, int k) { double avg = 0,sum=0; for (int i = 0; i < k; i++) sum += nums[i]; avg = sum / k; for (int...
2020-02-04 17:58:21 68
原创 628.三个数的最大乘积
情况一:全都为正数情况二:全都为负数情况三:有部分为正数有部分为负数思路:从大到小排序,取前面三个为方案一,取倒数后面的两个再取第一个为方案二;比较方案一和方案二的大小。情况(一、二、三)都是方案一或者方案二。class Solution {public: int maximumProduct(vector<int>& nums) { sort...
2020-02-04 16:26:27 60
原创 633.平方数之和
方法一: class Solution { public: bool judgeSquareSum(int c) { int num = sqrt(c); for (int i = num; i >= 0; i--) { if (i*i == c) return true; else { ...
2020-02-04 15:51:42 137
原创 617.合并二叉树
class Solution {public: TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) { if(!t1) return t2; if(!t2) return t1; preOrder(t1, t2); return t1; } void preOrde...
2020-02-04 15:21:41 65
原创 605.种花问题
class Solution {public: bool canPlaceFlowers(vector<int>& flowerbed, int n) { for (int i = 0; i < flowerbed.size(); i++) if (flowerbed[i] == 1) continue; else { i...
2020-02-04 10:36:07 140
原创 563.二叉树的坡度
这个方法不建议使用,很麻烦,但是作为我的第一个独立思考出来的方法。对个人来说具有纪念意义。思路:使用三个函数,fn函数:某一节点的坡度。fn1函数:某一节点左子树右子树节点的值之和。preorder函数:遍历每一节点把每一节点的坡度相加,得到最后值。class Solution {public: int sum,tmp ; int findTilt(TreeNode* ro...
2020-02-01 17:29:53 168
python的学习PPT
2020-09-02
福州大学863数据结构ppt.zip
2020-01-10
如何用孪生网络进行图像分类(不是二分类,多标签分类)
2020-09-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人