
经典问题合集
文章平均质量分 58
收集一些比较经典的问题
Jasscical
github:github网址/jasscical
gitee:gitee网址/jasscical/
记录个人学习经历,积少成多,水到渠成。
展开
-
构建、遍历二叉搜索树BST
创建二叉搜索树 #include <iostream> #include <climits> #define dataType int using namespace std; class bstTree{ private: dataType val; bstTree* left; bstTree* right; public: // 构造函数 bstTree():val(0), left(nullptr), right(nullptr){}原创 2021-09-06 20:08:36 · 260 阅读 · 0 评论 -
C/C++自定义string类
笔试的时候遇到这题:自定义string类 需要实现的成员函数都已经给出,学过但是自己写起来才发现还很多细节没把握到。习惯用C++的string写代码,C语言的char字符串数组的知识都快忘光了。 笔试完继续修改,调试,运行全部为1,表示对应函数实现正确。 注意的点: 字符数组的拷贝通常用strcpy(a, b),表示b拷贝到a strlen(a)表示的是字符串数组a的长度,不包含最后的‘\0’,但是申请动态空间的时候,需要在字符串字符个数+1,‘\0’是经常要注意的! qsort(数组名,数组大小,siz原创 2021-08-25 00:53:13 · 1647 阅读 · 0 评论 -
动态规划--股票系列(二):买卖股票的最佳时机
之前一篇讲解了股票系列中买卖多次且k值确定下所得的最大利润。现在来分析一下,力扣上其他题目。 可解决力扣题目:122、309、714 122. 买卖股票的最佳时机 II 解法1:贪心 假如第0天买入,第3天卖出,那么获得的利润为prices[3]-prices[0] 可以分解为:(prices[3]-prices[2])+(prices[2]-prices[1])+(prices[1]-prices[0]),那么问题转化为,每天利润,收集正利润就可以。 整体代码如下: class Solution {原创 2021-07-01 19:51:12 · 208 阅读 · 1 评论 -
动态规划--股票系列(一):买卖股票的最佳时机
188. 买卖股票的最佳时机 IV 思路:2 * k + 1个状态 这题是123. 买卖股票的最佳时机 III的进阶版。那么来分析一下,买卖k次每天的状态。如下: 0–不操作 1–第一次买入 2–第一次卖出 3–第二次买入 4–第二次卖出 … 2(k-1)-1=2*k-3----第k-1 次买入 2(k-1)=2*k-2----第k-1 次卖出 2*k-1----第k 次买入 2*k----第k 次卖出 可以发现,当奇数的时候为买入,偶数的时候为卖出! 状态定义:dp[i][j],i表示第i天,j表示原创 2021-07-01 19:20:20 · 207 阅读 · 2 评论 -
(经典算法-01)Fibonacci斐波那契数列
形如: 1 1 2 3 5 8 13 21 34 ... 即为斐波那契数列,自己今天图图画画写了三种方法。 迭代法 class Solution { public: int Fibonacci(int n) { if(n == 0) return 0; if(n == 1 || n == 2) return 1; int f1 = 1; int f2 = 1; n = n - 2; //需要加的次数 .原创 2020-11-18 21:18:19 · 204 阅读 · 0 评论