- 博客(8)
- 收藏
- 关注
原创 c语言股票问题--买股票的最佳时机(一笔交易 或 尽可能多次交易)
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。ascdvfgint maxProfit2(int* prices, int pricesSize){ if (NULL == prices || pricesSize <= 1) return 0; //申请一个priceSize行两列的二维数组 int** dp = (
2020-07-25 08:48:44 2130
原创 c语言判断序列是否为BST树的后续遍历序列
bool VerifySquenceOfBST(int* arr, int len)//判断序列是否为BST树的后序遍历序列{ if (NULL == arr || len <= 0) return false; int root = arr[len - 1]; int i = 0; for (i; i < len - 1; ++i)//左子树的节点都小于root ,大于root的为右子树,先break掉 { if (root <
2020-07-23 09:46:14 168
原创 替换字符串中的空格c语言
实现一个函数,把字符串中的每个空格替换成“%20”.例如:输入“We are happy.”,则输出“We%20are%20happy.” 若从头到尾扫描字符串,每次遇到一个空格替换时,都需要将后面的字符都后移两位,总的时间复杂度为O(n^2). 为减少时间复杂度,可以先遍历一遍计算出总的空格数,则替换空格后的字符串总长度等于原来的长度加上2乘空格数。p2指向替换后的字符串尾部,p1指向原字符串尾部,从后向前遍历。总的时间复杂度为O(n)。...
2020-07-22 21:31:59 1231
原创 旋转数组的最小数字c语言
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1. 解:顺序遍历一次数组找最小值是最简单的方法,但效率太低。由于数组是有序的,可以采用二分查找的方式。int InOrderMin(int* arr, int left, int right)//顺序查找{ int res=arr[left]; for (int i = lef
2020-07-18 16:59:26 207
原创 leetcode--分发糖果问题
老师想给孩子们分发糖果,有N个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到1个糖果。 相邻的孩子中,评分高的孩子必须获得更多的糖果。 那么这样下来,老师至少需要准备多少颗糖果呢?代码如下:#include<iostream>#include<vector>using namespace std;int fappen(vector<int> &ve
2020-07-18 16:29:41 410
原创 c++ 智能指针 (auto_ptr、unique_ptr、shared_ptr、weak_ptr)
auto_ptr(不建议使用) 所有权唯一,即只允许一个智能指针指向同一块堆内存。如果有两个智能指针,则回收旧智能指针的所有权。 缺点:指针的赋值或拷贝过程中,回收旧智能指针的所有权,导致旧智能指针无效,若之后给旧智能指针赋值,程序会报错。因此,不建议使用。#include<iostream>template<typename T>class Auto_Ptr{public: Auto_Ptr(T* ptr) :mptr(ptr)
2020-07-10 18:23:30 273
原创 C++ 工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)
利用工厂模式来生成对象,不需要关注对象的生成过程;还可以简化名称,以便使用。简单工厂模式 同一工厂生产多个产品。 违背开放–封闭规则(开放指新版本设计时可以使用旧版本的代码;封闭指不能修改旧版本的代码)。因此适用于规模固定、不易发生产品改动的工厂。实现如下://简单工厂模式#include<iostream>class Fruit{public: Fruit(std::string nm) :mname(nm) {} virtual
2020-07-06 21:45:55 1002
原创 c++ 类的内存布局 菱形继承
菱形继承 菱形继承的方法如下:class A{public: A(int a) :ma(a) {}public: int ma;};class B :public A{public: B(int b) :A(b),mb(b) {}public: int mb;}class C :public A{public: C(int b) :A(b), mc(b) {}public:
2020-07-04 21:53:06 478
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人