自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 问答 (1)
  • 收藏
  • 关注

原创 河南省历年高考人数(2004-2021)

一年一度高考时,我的高考已经过去15年了,河南高考人数创了新高,搜了一下历年人数,自己画了一个图

2021-06-07 12:05:12 5825

原创 C++不定参数实现写CSV文件

自己实现一个写csv的类,方便使用,使用不定参数模板实现。直接上代码,代码很简单,如果不设置csv头的话,就不校验每行数据的个数。如果写入了头,那就校验每一行数据的个数。头文件#pragma once#ifndef CSV_WRITER_INCLUDE_H_#define CSV_WRITER_INCLUDE_H_#include <fstream>#include <vector>#include <ios>#include <mem

2021-02-10 13:13:42 384

原创 linux下core文件被系统转存而不能直接找到

问题:程序崩溃了,找不到core文件第一步:查看是否开启记录core文件ulimit -cunlimited开启了core文件记录。第二步:查看core文件路径cat /proc/sys/kernel/core_pattern|/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e这个路径下是找不到core文件的,上边的配置信息表明core文件被系统转储了第三步:使用coredumpctl 命令cored

2021-01-23 10:43:01 2223

原创 期货发展的几个重要时间点和事件

1848年,82位粮食商人在芝加哥发起组建了世界上第一家较为规范的期货交易所--芝加哥期货交易所(CBOT)。 1865年,芝加哥期货交易所推出了标准化合约,同时实行了保证金制度,向签约双方收取不超过合约价值10%的保证金作为履约保证,促成了真正意义上的期货交易的诞生。 1876年,成立的伦敦金属交易所 (LME),开金属期货交易先河,交易铜和锡。 1882年,芝加哥期货交易所允许以对冲方式免除履约责任。 1883年,结算协会成立,向芝加哥期货交易所的会员提供对冲工具,但结算协会当时算不上规范严密的

2020-12-10 08:58:44 1587 6

原创 期权的内涵价值计算

期权的内涵价值是指在不考虑交易费用和期权费的情况下,多方立即执行期权合约可获取的收益。看涨期权的内涵价值 = max(标的资产的即期价格 - 执行价格, 0)看跌期权的内涵价值 = max(执行价格 - 标的资产的即期价格, 0)我是这么记忆这个公式的, 看涨期权 是 买权, 买的话肯定希望价格越低越好,看跌期权 是 卖权, 卖的话肯定希望价格越高越好。那么计算的话就把期望是价格高的放在前边。买 期望资产价格高, 卖期望执行价格高。...

2020-12-09 20:57:42 2158

原创 protobuf C++ 利用反射获取消息内容

protobuf经常会被大家使用,下面演示一下protobuf反射的使用。void PrintProtoMsg(const google::protobuf::Message& message){ const google::protobuf::Descriptor *des = message.GetDescriptor(); const google::protobuf::Reflection *ref = message.GetReflection(); int

2020-09-29 12:49:13 3072 1

原创 期货与互换

概念在这里,期货就不多做介绍了,介绍下互换。互换是指两个或两个以上当事人在约定的时间内,按照商定的条件交换一系列现金流的合约(互换可以看作是一系列远期的组合,远期合约可以看成仅交换一次现金流的互换)种类利率互换:是指双方同意在未来的一定期限内根据同种货币的同样的名义本金交换现金流,其中一方的现金根据浮动利率计算出来,而另一方的现金流根据固定利率计算。 货币互换:是指将一种货币的本金和固定利息与另一货币的等价本金和固定利息进行交换。 商品互换:是一种特殊类型的金融交易,交易双方为了管理商品

2020-09-16 22:03:02 1718

原创 iterator转换为reverse_iterator(正向迭代器转为逆向迭代器)

遇到这样一种情形,在set集合中find到某个元素,然后从这个元素,往begin的方向遍历。正常end方向遍历的话,我们可以通过iter != set.end() 作为结束判断。但是往前遍历的话,begin是有数据的,用 iter != set.begin()判断的话,还需要额外进行一次begin元素的操作。实际上我们是可以将正向迭代器转换为逆向迭代器的。举个例子。int main(){ std::set<int> si = {1,2,3,4,5,6,7}; ..

2020-09-08 10:02:21 1574

原创 linux目录提示git分支名称

centos切换目录的时候,如果切换到git分支的目录,就显示git branch的名称。可以这样操作cd ~vim .bashrc在文件中加入以下代码if [ -f /etc/bashrc ]; then . /etc/bashrcfiblack=$'\[\e[1;30m\]'red=$'\[\e[1;31m\]'green=$'\[\e[1;32m\]'yellow=$'\[\e[1;33m\]'blue=$'\[\e[1;34m\]'magenta

2020-08-15 15:52:07 564

原创 leetcode-数组-简单-斐波那契数

题目斐波那契数,通常用F(n) 表示,形成的序列称为斐波那契数列。该数列由0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1)= 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定N,计算F(N)来源:https://leetcode-cn.com/problems/fibonacci-number示例:示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1 +...

2020-07-05 14:39:08 202

原创 leetcode-数组-简单-最大连续1的个数

题目给定一个二进制数组, 计算其中最大连续1的个数。来源:https://leetcode-cn.com/problems/max-consecutive-ones/示例:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.解答方法一:只要遇到1 就继续往后寻找第一个不是1的数字 记录个数然后对比最大值class Solution {public: int findMaxConsecutive

2020-07-05 14:15:13 370

原创 leetcode-数组-简单-找到所有数组中消失的数字

题目给定一个范围在1 ≤ a[i] ≤ n (n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。来源:https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array示例:输入:[4,3,2,7,...

2020-07-05 13:34:32 2666

原创 leetcode-数组-简单-第三大的数

题目给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。来源:https://leetcode-cn.com/problems/third-maximum-number/示例:示例 1:输入: [3, 2, 1]输出: 1解释: 第三大的数是 1.示例 2:输入: [1, 2]输出: 2解释: 第三大的数不存在, 所以返回最大的数 2 .示例 3:输入: [2, 2, 3, 1]输出: 1解释: 注意,要求

2020-07-05 13:18:28 281

原创 leetcode-数组-简单-移动零

题目给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。来源:https://leetcode-cn.com/problems/move-zeroes/示例:示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。解答方法一:思路如下发现一个0, 把后边的元素依次往前移动, 最后一个元素赋值为0 每次发现一个0的时候,后边往前移动的元...

2020-07-05 13:02:30 200

原创 leetcode-数组-简单-缺失数字

题目给定一个包含0, 1, 2, ..., n中n个数的序列,找出 0 ..n中没有出现在序列中的那个数。来源:https://leetcode-cn.com/problems/missing-number/示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8额外要求:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?解答方法一:在不考虑线性时间复杂度的前提下,使用排序,然后查找的方法...

2020-07-05 12:48:35 169

原创 leetcode-数组-简单-存在重复元素 II

题目给定一个整数数组和一个整数k,判断数组中是否存在两个不同的索引i和j,使得nums [i] = nums [j],并且 i 和 j的差的 绝对值 至多为 k。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/contains-duplicate-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。示例1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: n...

2020-07-05 12:25:47 121

原创 leetcode-数组-简单-存在重复元素

题目给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回true。如果数组中每个元素都不相同,则返回false来源:https://leetcode-cn.com/problems/contains-duplicate/示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true解答方法一:穷举法分析...

2020-07-05 11:58:31 131

原创 timerfd加epoll实现定时器简单封装

封装了一个使用timerfd和epoll实现的定时器我的思路是定时器类初始化时候直接启动一个线程,线程只负责定时事件触发后派发任务 epoll定时器事件触发的时候,将注册的定时事件投递给任务线程 例子中任务线程使用了一个线程池头文件#ifndef CCTimer_H_#define CCTimer_H_#include "ThreadPool.h"#include <sys/epoll.h>#include <sys/timerfd.h>#includ

2020-07-05 11:15:35 896 2

原创 centos更新本机时间为网络NTP服务器时间

问题起因经常的我们会在自己在电脑上用vmware装centos虚拟机,有时候暂停了之后好几天不用,再恢复的话,centos系统时间往往对不上。这个时候可以使用ntpdate来更新时间。操作检查一下是否安装了ntpdateyum list installed |grep ntp安装了的话应该会有如下显示,当然版本可能不同。没安装的话,可以yum安装一下。使用ntpdate命令同步时间ntpdate ntp1.aliyun.com后边的域名或者IP你也可以自己找,

2020-07-02 20:25:52 494

原创 leetcode-数组-简单-旋转数组

题目给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]输入: [-1,-100,3,99] 和 k = 2输出: [3,99,-1,-100]解释: 向右旋转 1 步: [99,-1,-100,3]向右旋转 2 ...

2020-06-27 19:38:14 137

原创 leetcode-数组-简单-多数元素

题目给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/majority-element著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输入: [3,2,3]输出: 3输入: [2,2,1,1,1,2,2]输出: 2解答方法一:分析如下:..

2020-06-27 12:38:49 137

原创 C++控制台输入支持退格

平时我们写一个小的控制台程序,如果从控制台读取数据的话,输错了是不支持回退的。很多我们使用的软件都是支持的,在github上找了一个C版本的readline,简单封装了一下,供自己平时写小程序使用。github地址:https://github.com/troglobit/editline封装后代码如下:头文件#ifndef HANDLE_MODE_CONSOLE_MODE_H_#define HANDLE_MODE_CONSOLE_MODE_H_#include <std.

2020-06-26 22:45:05 1003

原创 C++线程安全map (低效率)

map的并发操作是不安全的,C++里边有红黑树实现的std::map和hash表 unordered_map。在《C++并发编程实战》一书中的162页提供了一个细粒度锁的MAP数据结构。使用了boost的shared_mutex (C++14已经支持,C++11没有)使用了std::hash大家可以参考这本书的实现,如果支持C++14的话可以不用boost。我这里简单写一个对std::map整个数据结构加锁的简单的类,我是在自己写一些测试demo的时候可能会用。#ifnde...

2020-06-26 21:57:26 8270 3

原创 leetcode-数组-简单-两数之和 II - 输入有序数组

题目给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1必须小于index2。说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。输入: numbers = [2, 7, 11, 15], target = 9输出: [1,2]解释: 2 与 7 之和等于目标数 9 。因此 i...

2020-06-26 19:11:40 153

原创 leetcode-数组-简单-买卖股票的最佳时机 II

题目给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输入: [7,1..

2020-06-26 17:24:22 138

原创 leetcode-数组-简单-买卖股票的最佳时机

题目给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输入: [7,1,5,3,6,4]输出: 5解释: 在第 2.

2020-06-26 09:57:54 192

原创 leetcode-数组-简单-杨辉三角 II

题目给定一个非负索引k,其中k≤33,返回杨辉三角的第k行输入: 3输出: [1,3,3,1]来源:https://leetcode-cn.com/problems/pascals-triangle-ii/解答方法一:因为已经做过一个杨辉三角的题目所以这个题目是没啥难度的。但是题目在进阶的说明里边说要使用 O(k)的空间复杂度,这个确实需要思考一下。分析如下:k行 有 k + 1 个元素 每行元素的计算方法和上个问题是一样的 重点是下一行元素的计算依赖上一...

2020-06-26 09:12:11 116

原创 leetcode-数组-简单-杨辉三角

题目给定一个非负整数numRows,生成杨辉三角的前numRows行。在杨辉三角中,每个数是它左上方和右上方的数的和。来源:https://leetcode-cn.com/problems/pascals-triangle/输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]解答方法一:我解答这个题目的时候分析是这样的:假设从row是从0 开始的 除row = 0 之外,所有...

2020-06-26 08:50:54 110

原创 leetcode-数组-简单-合并两个有序数组

题目给你两个有序整数数组nums1 和 nums2,请你将 nums2 合并到nums1中,使 nums1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n 。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-sorted-array著作权归领扣网络所有。商业转载请联系官方授权,...

2020-06-25 20:55:01 195

原创 leetcode-数组-简单-加一

题目给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/plus-one著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。解答方法一:这个题目主要就是考虑

2020-06-23 13:20:42 152

原创 leetcode-数组-简单-最大子序和

题目给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。转载链接https://leetcode-cn.com/problems/maximum-subarray/输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。解答方法一:思路是这样的,最直接的思路,从第一个数开始,挨个往后加结果比最大值大,就把最大值更新,一直算到最后一个。然后再依次从后边...

2020-06-22 21:24:48 163

原创 leetcode-数组-简单-搜索插入位置

题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素转载连接https://leetcode-cn.com/problems/search-insert-position/输入: [1,3,5,6], 2输出: 1解答方法一:这个题目感觉不需要深入分析就是各种if判断,把情形都覆盖了就可以了class Solution {public: int searchInse.

2020-06-20 15:30:01 155

原创 leetcode-数组-简单-移除元素

题目给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-element著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。给定 nums = [0,1,2,2...

2020-06-20 15:17:28 178

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

题目给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。给定 nums = [0,0,1,1,1,2,2,3

2020-06-20 15:03:20 110

原创 leetcode-数组-简单-两个数之和

题目给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[...

2020-06-20 14:49:03 177

原创 IOS端videoJS直播暂停后再播放不刷新最新画面

解决方案:var myPlayer = videojs('my_video_1', {}, function(){ var player = this; player.on("pause", function () { player.one("play", function () { player.src({"type":player.currentType(), "src":player.currentSrc()});

2020-06-10 18:22:15 824

原创 go通过数组(切片)构建菜单树结构

有这样的一组节点,每个节点包含自己的Id,还有父Id (Parent Id),包含children指针数组,但是children是空,需要根据id和parentId把cihldren填充上。实现了如下的方法type TreeNode interface { ID() int ParentID() int AppendChildren(interface{})}func BuildTree(array []TreeNode) TreeNode { maxLen := len(array)

2020-06-06 14:46:44 1620

转载 c++文件打开模式的有效组合

文章来源,https://blog.csdn.net/xxlyyhappy/article/details/6613168 感谢作者!!!打开模式:in:打开文件时做读操作; out:打开文件时做写操作; app:在每次写之前找到文件尾; ate:打开文件后立即将文件定位在文件尾; trunc:打开文件时清空已存在的文件流; binary:以二进制模式进行IO操作;有效组合:并不是所有的打开模式都可以同时制定,有些模式组合是没有意义的,例如:in和trunc,准备读取文件...

2020-05-25 08:58:53 381

原创 EA(Enterprise Architect )绘图加版本号

EA版本 EA14目标让绘制的图上显示作者和版本信息,以及创建时间和更新时间操作步骤如下。选中layout点击下边红框内容信息的修改,参见或者在图片空白处右键点击properties弹出下图如果不需要这个信息的话,选中这个版本信息元素右键,选择删除即可。显示版本信息方式二:右键空白处点击properties选择Diagram勾选...

2020-04-02 15:22:42 971

原创 go切片的常用操作

首先我们应该知道go没有引用类型只有值类型。那么切片可以理解为一个指针类型,切片的参数传递就是指针的值传递sli := []int{0,1,2,3,4} 追加操作追加操作返回的切片的内存地址,可能不是原来的地址,所以append操作是需要返回值的。这个涉及到追加之后的扩容问题了。有点类似于C++ vector的扩容过程sli = append(sli, 100)初始...

2020-02-21 21:18:24 830

空空如也

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

TA关注的人

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