自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

迈向年薪百万之路

不到年薪百万不改名!!

  • 博客(23)
  • 收藏
  • 关注

原创 并行算法与性能优化读书笔记

文章目录第一章 绪论第二章 现代处理器特性第三章 算法性能和程序性能的度量与分析第四章 串行代码性能优化第一章 绪论并行:parallelism,是指在具有多个处理单元的系统上,通过将计算或数据划分为多个部分,将各个部分分配到不同的处理单元上,各处理单元相互协作,同时运行,以达到加快求解速度或者提高求解问题规模的目的。并发:concurrency,并发是指在一个处理单元上运行多个应用,各应用分时占用处理单元,是一种微观上串行、宏观上并行的模式,有时也称其为时间上串行、空间上并行代码性能优化:是指

2021-10-09 17:46:29 429

原创 【刷题总结】哈希系列问题

文章目录一、算法解析二、解题模板1、C++ 内相关API2、使用哈希集合查重三、哈希系列问题1、哈希表设计2、去重\判重问题(哈希集合)(1)重复元素查找(2)几数之和(3)求交集(4)是否循环问题(5)判断是否存在3、构造哈希表(1)键---下标(2)键 --- 统计个数(3)字母 --- 单词(字典映射)(5)其他4、滑动窗口类问题(哈希映射)5、哈希设计键(1)排序后字符串/数组为key(2)指针/节点作为key(3)矩阵中索引作为key(4)带掩码的字符串作为key6、前缀和 + hash问题一

2021-06-07 16:37:21 562

原创 【刷题总结】堆系列问题

文章目录一、堆的定义二、堆的实现三、堆的应用1、堆排序2、找前K大的元素3、第K大元素问题四、堆系列问题1、找前K大元素问题2、第K大元素问题3、找中位数问题4、堆排序-动态顺序的问题一、堆的定义堆的定义:堆是一种特别的二叉树,具有两个特性完全二叉树;每一个节点的值都必须 大于等于或者小于等于 其孩子节点的值。堆的特性插入元素:O(logN)删除元素:O(logN)获取 堆 中的最大值或最小值:O(1)堆的分类最大堆:堆中每一个节点的值 都大于等于 其孩子节点的值。所以最

2021-06-07 16:36:34 200

原创 【刷题总结】栈系列问题

文章目录一、算法介绍二、解题模板1、栈的实现2、栈的API3、深度优先4、单调栈问题三、栈系列问题1、栈的基础特征(1)设计题,用来实现其他结构(2)利用栈的基础特征2、括号&表达式运算&退格问题(1)括号匹配问题(2)表达式运算问题(3)退格问题3、单调栈4、树的遍历-深度优先5、图的遍历-深度优先一、算法介绍栈:后入先出栈系列问题:https://leetcode-cn.com/tag/stack/problemset/栈的典型问题 设计题 括号、表达式运算、字符串

2021-06-07 16:34:49 462

原创 【刷题总结】差分系列问题

文章目录差分1、差分数组定义2、差分数列题型解析3、差分典型题目差分1、差分数组定义原始数组a = {a[1]、a[2]、…、a[n]}差分数组b = {b[1]、b[2]、b[3]、…、b[n]} 此条件成立:a[i] = b[1] + b[2] + … + b[i]即:数组b为数组a的差分和,数组a为数组b的前缀和2、差分数列题型解析差分算法常用于区间更新数列值,当区间[L,R]序列中 [l, r]之间的每个数加上C,差分数组可以实现 O(1) 的时间复杂度更新,差分算法题型

2021-05-11 10:52:31 247

原创 【刷题总结】单调栈系列问题

文章目录单调栈问题特征单调栈问题解法单调栈系列题目1、下一个更大元素系列2、柱形图面积系列3、延展用法单调栈问题特征LeetCode官方讲解单调栈,就是栈的应用,里面的元素的大小按照他们所在栈内的位置,满足一定的单调性。单调栈里的元素具有单调性元素加入栈前,会在栈顶端把破坏栈单调性的元素都删除单调递增:栈可以找到元素向左向右遍历第一个比他小的元素,当元素出栈时,说明这个新元素是出栈元素向后找第一个比其小的元素,新栈顶元素是出栈元素向前找第一个比其小的元素单调递减:栈可以找到元素向左享有遍历第

2021-03-16 11:09:20 195

原创 【刷题总结】回文子串系列问题

文章目录一、回文子串常用模板方法1:动态规划方法2:中心拓展法方法3:二分查找,反向找子串rfind二、系列题目总结一、回文子串常用模板方法1:动态规划dp(i, j) 代表从区间[i, j ]直接的最长回文子串转移方程(视具体题目定)dp[i][j] = s[i] == s[j] ? dp[i+1][j-1] + 2: max(dp[i+1][j], dp[i][j-1]); // 如果s[i]和s[j]相同,即可接上成为回文子串,那在dp[i+1][j-1]基础上加上2// 若不相同,则为

2021-03-15 16:36:33 98

原创 LeetCode3:无重复字符的最长子串

题目LeetCode3. 无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。题解当我们知道该字符集比较小的时侯,我们可以用一个整数数组作为直接访问表来替换 Map。字符hash对应常用的表如下所示:int [26] 用于字母 ...

2019-04-26 18:03:14 112

原创 【编程语言系列】1、字符串 (C、C++)

1、字符串C语言: C 语言中,字符串实际上是使用 == ‘\0’ ==字符终止的一维字符数组> 创建char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};char greeting[] = "Hello";> 复制:strcpy(str1, str2); //把str2复制到str1 > 获取字符串长度:len...

2019-04-26 17:37:33 169

原创 LeetCode881:救生艇 (C、C++实现)

题目LeetCode881:救生艇第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit。每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。返回载到每一个人所需的最小船数。(保证每个人都能被船载)。示例 1:输入:people = [1,2], limit = 3输出:1解释:1 艘船载 (1, 2)示例 2:输入:people =...

2019-04-24 17:46:48 596 1

原创 C++11 新特性汇总

文章目录1、指针、智能指针(nullptr、shared_ptr、std::weak_ptr)(1)nullptr(2)智能指针 shared_ptr、unique_ptr、weak_ptr2、类型推导(auto、decltype)(1)auto(2)decltype(3)拖尾返回类型3、类特性修改(1)默认函数行为(dafault、delete)(2)构造函数(委托、继承构造函数using)(3...

2019-04-23 17:48:37 4427

原创 【数据结构系列】堆(C、C++实现)

文章目录一、堆的基本概念二、C 实现1、数据结构及函数声明(.h)2、功能函数(.m)3、Example三、C++实现0、STL库调用1、数据结构及函数声明(.h)2、功能函数(.m)3、Example(git)一、堆的基本概念1、定义:最小堆,是一种经过排序的完全二叉树,其中任一非终端节点的数据值均不大于其左子节点和右子节点的值。2、特性(2个):(1)结构性:它是能用数组表示的完全二叉...

2019-04-19 16:15:37 392

原创 LeetCode215:数组中的第K个最大元素 (C、C++实现)

题目LintCode20.有效的括号https://leetcode-cn.com/problems/kth-largest-element-in-an-array/在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3...

2019-04-18 17:49:16 944

原创 LeetCode20:有效的括号 (C、C++、python实现)

题目LintCode20.有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。题解考察栈C实现bool isValid(char* s) { int lenght = strlen(s); if...

2019-04-16 09:54:25 127

原创 git命令使用教程

git使用一、git 安装&配置二、 git 创建仓库三、本地版本管理1、查看提交日志2、查看状态3、查看变更比对4、丢弃变更5、回退到指定版本6、回退到删除了的记录7、删除文件四、远程仓库管理1、本地关联到远程仓库关联2、推送仓库所有内容3、推送变更4、克隆远程仓库到本地五、分支管理1、分支管理2、分支合并3、储存工作现场4、 推送&拉取&冲突六、git标签备注一、gi...

2019-04-12 15:17:18 162

原创 Linux基础知识点

文章目录一、Linux指令二、X86&ARM一、Linux指令类型命令路径绝对路径:/etc/init.d当前目录 ./ 上层目录: . ./ 主目录~/切换目录: cd打印目录栈dirs进程处理查看当前进程:ps显示所有进程 ps -ef (system v 输出) ps -aux bsd 格式输出查看指定进程ps -ef...

2019-03-15 17:36:04 109

原创 LintCode92.背包问题-动态规划(C++代码)

题目LintCode92.背包问题在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品的大小为A[i]样例样例 1:输入: [3,4,8,5], backpack size=10输出: 9样例 2:输入: [2,3,5,7], backpack size=12输出: 12挑战O(n x m) time and O(m) memory.O(n...

2019-03-08 10:40:04 925

原创 C/C++基础

一、C/C++基本概念1、C&C++1、 C++:是在C语言的基础上开发的一种面向对象编程语言。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。2、 C&C++的特点:C语言特点作为一种面向过程的结构化语言,易于调试和维护;表现能力和处理能力极

2019-03-08 01:29:22 503

原创 操作系统知识点

1、进程&线程进程:执行着的应用程序,不同的进程使用不同的内存空间线程:进程内部的一个执行序列。一个进程可以有多个线程,而所有的线程共享一片相同的内存空间,线程又叫做轻量级进程。2、线程的状态(5个)新建状态:使用 new /Thread类/其子类建立一个线程对象后,处于新建状态。就绪状态:调用了start()方法,线程进入就绪状态。处于就绪队列中等待调度就绪状态:调用了sta...

2019-03-08 00:58:21 137

原创 网络基础知识点

TCP&UDP①TCP:传输控制协议;是面向连接、可靠的字节流服务;交换数据前,双方必须建立一个TCP连接;提供超时重发、丢弃重复数据、检验数据、流量控制等功能,保证数据传输;②UDP:用户数据报协议;是面向数据包的运输层协议、不可靠;不用建立连接,不保证到达;速度较快区别:1.TCP面向连接, UDP面向无连接的2.TCP有保障的,UDP传输无保障的3.TCP是效率低的,UD...

2019-02-27 21:18:22 194

原创 [算法] 七大排序算法详解

排序算法对比排序算法类别时间复杂度(平均)空间复杂度稳定性时间复杂度(最优)时间复杂度(最坏)插入排序插入排序shell排序插入排序选择排序选择排序堆排序选择排序冒泡排序交换排序快速排序交换排序归并排序

2019-02-27 21:11:44 230

原创 C++ STL库总览

STL介绍STL包括:容器、算法、迭代器容器:即存放数据的地方。在STL中,容器分为两类:序列式容器和关联式容器。序列式容器,其中的元素不一定有序,但都可以被排序。如:vector、list、deque、stack、queue、heap、priority_queue、slist;关联式容器,内部结构基本上是一颗平衡二叉树。所谓关联,指每个元素都有一个键值和一个实值,元素按照一定的规则存放...

2019-02-27 20:33:46 323

原创 LeetCode1:两数之和 (C、C++、python实现)

leetcode1https://leetcode-cn.com/problems/two-sum/给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 n...

2019-02-27 16:50:46 142

空空如也

空空如也

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

TA关注的人

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