自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode--最后一个单词的长度

给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。示例:输入: “Hello World”输出: 5这道题挺简单的,但是细节的东西挺多,需要注意一些坑方法一思路从头开始遍历,如果不是’ ',则将该字符加到另外一个字符串s2上如果是‘ ’,则判断s2这个字符串是否为空,如果不为空则将s

2020-07-27 15:16:46 188

原创 leetcode--搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0这道题的主要关键字就是排序数组,主要的解决方法就是使用一个二分的方法快速的检索。二分是一个查找数值很快的方法但

2020-07-23 20:27:44 207

原创 leetcode--移动元素

题目地址:https://leetcode-cn.com/problems/remove-element/给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。

2020-07-21 23:18:24 240

原创 leetcode-- 删除排序数组中的重复项

题目https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长

2020-07-20 21:42:25 410

原创 leetcode -- 合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4这个是一个典型的链表问题,链表的问题相对来说还是比较简单的,但是确实很让人头疼,尤其是像C++这类语言,经常需要自己手动释放内存。而且经常就会出现野指针问题。。。遇到就很难受。在讲解这道题前我们先简单的介绍以下链表。顾名思义链表就是一种链式结构。在每个结点中储存着

2020-07-19 22:12:00 154

原创 leetcode--有效的括号

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出: false示例 5:输入: “{[]}”输出: true在讲解这道题的

2020-07-18 22:32:26 135

原创 leetcode -- 最长公共前缀

题目(https://leetcode-cn.com/problems/longest-common-prefix/)[https://leetcode-cn.com/problems/longest-common-prefix/]编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: "fl“示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释:

2020-07-16 22:35:27 147

原创 C++图解前缀树(字典树)

今天看到了最长公共前缀树的时候就突然想到了前几个星期学的前缀树。所以打算来写写。试想有这样一种场景,我们现在手里有10W个单词,并且里面有重复的单词,如果我们使用传统的遍历手法查找一个单词,那么可能没等查出来交卷铃声已经响了。或许有人会说使用哈希表,但是存在重复的单词,这个效率还是欠缺了点。所以就引入了今天的主角—字典树。字典树又称之为前缀树,是一个哈希表的变种,优于哈希表的查找速度。但是他的空间复杂度是十分复杂的,所以是一种空间换时间的做法。...

2020-07-16 22:06:54 1121 4

原创 leetcode--罗马数字转整数

题目https://leetcode-cn.com/problems/roman-to-integer/罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12

2020-07-15 21:05:21 132

原创 leetcode -- 回文数

题目https://leetcode-cn.com/problems/palindrome-number/

2020-07-14 12:42:10 123

原创 力扣--整数反转

题目https://leetcode-cn.com/problems/reverse-integer/这个问题的思路比较简单,但是我在做题的时候问题就出现在范围上面,有可能反转后会超出整型的范围。

2020-07-12 13:42:10 688 1

原创 力扣-- 字符串压缩(双指针解法)

题目https://leetcode-cn.com/problems/compress-string-lcci/解决该问题可以使用双指针的方式,创建两个指针,一个头指针指向第一个元素,另外一个尾指针往后移并且不断地判断头指针的值是否相等,如果相等则尾指针往后移动,直到不相等的时候,将头指针指向的元素赋值到另外一个数组再加上尾指针减去头指针的长度,头指针到尾指针位置,依据上面重新循环直到尾部。以下代码使用C++,不影响阅读。class Solution {public: string comp

2020-07-10 09:15:48 325

原创 力扣--两数之和两种方法

题目:https://leetcode-cn.com/problems/two-sum/以下代码使用C++语言,但是不影响阅读。方法一:暴力法该题使用暴力法很简单,只需要将target减去nums中的元素并且在遍历一下是否存在与之相等的元素。class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { for(int i=0;i<num

2020-07-09 22:38:27 232

原创 算法笔记(二)--排序算法(一)

目录前言(必看)冒泡排序选择排序插入排序前言(必看)关于排序算法我打算拆开几个部分来讲,在讲解前先声明几点注意事项。笔者使用的是C++,但是算法部分尽量不过多的使用C++语言的特性。文中出现的swap,print_arry算法在后文中直接调用,就不再赘述。void print_arry(const vector<int> array) // 打印数组{ for (auto s : array) cout << s << endl;}void s

2020-06-05 20:22:15 162

原创 vector subscript out of range报错

这个错误是由于vector没有创建内存的时候直接使用下标运算,导致下标越界解决方案:在使用下标运算的时候保证vector的下标小于size,如如果size等于0并且想通过下标运算的形式给容器添加元素,那么需要灵活使用resize来创建内存。这样确保不会下标越界。并且调用resize的时候编译器会默认赋值。...

2020-06-01 18:39:01 995

原创 可转债基金

在债券基金中有一种可攻可守的债券基金,就是可转债基金。可转债基金既可以是债券也可以是股票。在熊市的时候我们基金经理就会转成债券,在牛市的时候就转成股票,所以看到了吧,可转债基金的强大之处。我们应该怎么选择债券基金呢?星级:晨星网在3星以上传送门时间:成立时间在5年以上规模:基金规模在5亿以上历史回报率大于0操作方式与纯债券基金一样,不再赘述。虽然可转债基金是一种可攻可守的基金,...

2020-05-27 16:22:38 58

原创 偏债券基金

偏债型基金是大部分含有债券,小部分是股票的基金。所以偏债券基金的风险是比纯债券基金高的。那我们买入的条件是什么呢?星级:晨星网在3星以上传送门时间:成立时间在5年以上规模:基金规模在5亿以上基金经理:该债券中任职5年以上偏债券基金的操作步骤与纯债券基金一样,所以,这里就不多在赘述。那我们什么时候,可以买入偏债券基金呢?我们一般以10年期国债与当前市场利率与3.5%相比1...

2020-05-27 16:20:54 41

原创 资产配置

在进行投资的时候我们为了规避风险,需要进行基金策略的调整。一般使用高风险和低风险的基金进行进行配置。最简单的配置方法时使用1:1的比例进行配置,经过一年的时间在根据情况重新配。例如:你现在有10w元进行资产配置,那么你可以使用5W元购买股票基金(主要买指数基金),5W元买债券基金。加入经过一年后,股票基金有4.5W元,债券基金有5.6W元,那么你需要重新配置让它们达到1:1的比例。那么将债...

2020-05-27 16:15:49 52

原创 算法笔记1 -- 时间复杂度

目录认识时间复杂度基础概念认识时间复杂度基础概念常数时间操作: 一个操作与数据量无关的,无论多大的数据量都是固定时间完成的操作成为常数时间操作。时间复杂度的表示: 我们常常使用bigO(T)的形式来表示时间的复杂度,bigO只是一种符号也可以简写成O,T表示程序运行的时间。总体可以简写成O(T)。== 评价一个算法流程的好坏,看的就是时间复杂度,在分析不同样本的常数时间 ==...

2020-05-24 17:54:14 249

原创 基金选择--混合基金及股票基金

混合基金的选择混合基金就是一篮子的基金,里面有债券,股票等这些配置比例都是按照基金经理的选择进行配置,混合基金是一个比较高风险的基金。我们在选择混合基金的条件收益率: 看3年以上的收益率,收益率越高越好基金成立的时间:成立时间在3年以上基金规模:2-100亿之间最优基金经理跟换频率:越低越好基金公司的盈利能力:同类基金公司排名看是否跑赢其他公司和沪深300(大致表示大盘的走...

2020-05-22 21:00:54 48

原创 基金分类及招募书阅读

基金入门以下出现的基金只用于学习交流,不构成投资建议基金分类基金分类.png快速读懂基金招募书查看基金的招募书到巨潮资讯查看 传送门再说搜索页面输入基金的代码即可,也可以输入基金的完整名称基金招募搜索.png查看基金招募书3步曲基金的类型,查看基金是股票型基金还是混合型等等,以判断可承受的风险基金类型.png第二步查看基金托管机构以及查看...

2020-05-22 17:24:18 39

原创 C++ 智能指针问题

智能指针注意点一:使用智能指针跟使用普通指针一样。没有进行初始话的指针不能用。错误:void print_element(shared_ptr<vector<int>> v) // 打印vector内容{ for (auto s : *v) cout << s << endl;}void cin_element(shared_pt...

2020-04-22 23:42:42 479

原创 C++泛型算法(二)参数绑定

参数绑定在泛型算法中,如find_if这种只能传递一元谓词的算法除了能够使用lambda表达式以外,还能够将参数绑定。bind绑定bind标准库在functional头文件中,可以将bind函数看成是一个适配器。他接受一个可调用对象和形参列表来适应调用对象bind的一般形式auto newcallable=bind(callable,ageslist)auto\ newcall...

2020-04-16 16:08:54 205

原创 C++ 泛型算法(一)初识泛型算法,lambda表达式

文章目录概述算法工作原理泛型算法只读算法写容器算法重排容器元素算法指定操作及算法传参lambda表达式谓词lambda介绍lambda传参捕获列表用lambda改写算法lambda捕获和返回值捕获引用捕获隐式捕获显式捕获可变lambda指定lambda返回类型概述对于顺序容器的操作,我们前面介绍了添加,删除,大小操作,但是我们还有比如查找,排序等操作,这些操作是基于算法的,C++给我们提供了...

2020-04-14 16:19:04 931 1

原创 C++ STL顺序容器详解(三)--string容器,容器适配器

C++ STL顺序容器详解(一)C++ STL顺序库详解(二)string容器额外操作容器适配器string容器额外操作容器适配器

2020-04-09 23:44:50 514

原创 C++ STL顺序容器详解(一)

顺序容器概述C++的STL库中提供了很多的容器类型,一个容器类型就是一个类对象,方便开发者对数据进行操作,如增删查等操作,这些操作不依赖容器中的数据的类型,而是更具数据在容器中的位置以及容器的结构。容器功能vertor可改变数组的大小,支持快速查找,下标查找,但是对于插入和删除操作,需要系统会移动所有元素,效率会比较慢deque双端队列,支持快速访问,在容器的头和...

2020-04-09 00:00:22 1474

原创 C++ STL顺序容器详解(二)

C++ STL顺序容器详解(一)[目录]顺序容器的操作特殊的forward_list操作改变容器的大小容器操作的注意点vector增长原理顺序容器的操作向顺序容器添加元素下面表格有中插入操作会改变array的大小,所以都不支持forwar_list有自己的insert和emplaceforward_list不支持push_back和emplace_backvector与...

2020-04-08 23:59:06 556

原创 类详解(一)成员变量,成员函数,友元及其他注意事项和概念

创建类创建类的方式有两种:一种是使用class关键字,另外一种是使用struct来创建类这两种方式的区别是:在不加上访问说明符的基础上,class默认的成员都是私有的,struct默认的是公开的,所以一般如果所有的类成员和成员函数都是公开的可以直接使用struct。class 类名{ // 成员函数或者成员变量public: // 所有的成员变量或者成员函数都是公开的private...

2020-04-04 14:55:08 924

原创 C++ primer ----函数(模糊知识点)

含有可变形参的函数有的时候,我们传入的参数的个数是不确定的,这个时候就需要使用到省略符形参initializer_list。initializer_list是标准库类型,在该类型中的每一个元素都是常量,省略符形参只能出现在形参列表中的最后一个位置。例如void print(initializer_list<int> li) // 正确,函数中只有一个形参{ for(auto...

2020-03-31 22:54:19 219

原创 C++范围for循环

访问for循环,遍历的是数组类可迭代的容器int i []= {1,2,3,4,5,6,7,8,9};for(auto c : i){ cout<<c<<endl;}#include <string>string s = "abcdefghijklmn";for(auto t :s ) cout<<t<<endl; ...

2020-03-27 20:46:56 343

原创 基于C语言的最小生成树--普里姆算法

普里姆算法(prim)普里姆算法建立在邻接矩阵的基础之上,我们用65535来表示INFINITY,表示两个顶点之间没有关联。0表示自身,其他的数表示权值。代码实现及讲解:#define max 100#define INFINITY 65535typedef struct{ char vex[max]; int arc[max][max]; int vexnum , edgen...

2020-03-14 13:01:10 425

原创 基于C语言的最短路径--迪杰斯特拉算法

迪杰斯特拉算法(DiJkstra)如果要从V0到V8,只需要找出V0所在的边的最短路径,然后在再另一个顶点中找出最短的路径,以此类推一直到目标点。#define INFINITY 65535#define max 100//typedef struct //测试样例//{// char vex[max] = { 'a','b','c','d','e','f','g','h','i'...

2020-03-14 12:51:38 480

空空如也

空空如也

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

TA关注的人

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