自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

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