自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yannie's Blog

静心学习cpp | Lyy你要奋斗

  • 博客(224)
  • 资源 (8)
  • 问答 (3)
  • 收藏
  • 关注

原创 mac下安装gym的坑

安装gym可以使用如下这样快速安装pip install gym我是选择源码安装的git clone https://github.com/openai/gym.gitcd ~/gympip install -e '.[all]'最后一步往往会报错,问题是出在 MuJoCo安装 上,但是这个安装又很麻烦,学生可以免费使用一年,要么就只能30天试用,官网在这里,于是这里我们就暂时先不安装它吧在 gym 目录下的setup.py 这个文件里去掉 MuJoCo 的安装选项:vim ~/gy

2021-01-07 13:13:02 37

转载 解决latex遇到`picins.sty‘ not found问题

执行xelatex时,有些包不存在,会提示:! LaTeX Error: File `picins.sty’ not found解决方法:在http://www.ctan.org/pkg/ctex网站搜索需要的包,如搜索picins在搜索结果最下方下载zip格式的包解压并执行:sudo cp 目录下的所有文件 /usr/share/texmf/tex/latex/执行:sudo texhash其他包以此类推。转载于:https://my.oschina.net/itfanr/blog/4794

2021-01-03 16:58:17 57

原创 leetcode23 合并k个升序链表

记录一下这道题,觉得用堆或者分治思想都很优雅//使用小根堆,优先队列做法class Solution {private: struct cmp{ bool operator () ( ListNode* a, ListNode* b ){ return a->val > b->val; //这里的比较大小每次都弄反。。。 } };public: ListNode* mergeKLists(vect

2020-12-30 22:33:08 12

原创 汉明权重(hamming weight) ----- 计算数据位中1的个数

汉明重量是一串符号中非零符号的个数。因此它等同于同样长度的全零符号串的汉明距离(在信息论中,两个等长字符串之间的汉明距离,是两个字符串对应位置的不同字符的个数)。在最为常见的数据位符号串中,它是1的个数。本文参考文章1 文章2在wiki百科中给出,计算1的个数,目前来说最好的是按照树状进行相加(当然比遍历要快很多,遍历就相当于一棵极不平衡的数)下面是variable-precision SWAR算法的实现:uint32_ t swar (uint32_ t i) { //步骤1 .

2020-12-26 12:24:33 35

原创 动态规划解决回文串问题

有关回文串的问题可以用很多种算法来解决,比如:专门为解决回文串而设计的算法Manacher 算法 ,马拉车算法等等,可以看这里 这里只关心用动态规划的方法来解决。文章涉及到 求最长回文子串 leetcode 5最长回文子序列 leetcode 516最少分割次数使得都为回文子串 leetcode 132最少插入次数使得为回文子串 leetcode 1312对待回文串问题的动态规划状态定义,一般有两个一维数组 dp[i] 表示s[0…i]要形成回文子串的最少分割次数(这个定义还是比较少用的)

2020-12-17 16:38:02 14

原创 c++中static关键字 —— leetcode264

关于static关键字的介绍可以看介绍1 介绍2今天想说的是leetcode264,一个使用静态变量大幅提升运算效率的应用这一题暴力的解法就是将所有可能的丑数都列出来,然后排序,找到第n个丑数。代码如下:class Solution {public: int nthUglyNumber(int n) { vector<int> nums; if( nums.empty() ){ //因为题目中给了n 不超过1690,所以这里大于是2^31次方这个

2020-12-16 18:40:57 7

原创 正则表达式 “.*“匹配任意字符

之前我一直理解成 . 可以代表[a-z][A-Z][0-9]以及所有的特殊字符,假设点.只代表[a-z]中的任意字符,那么.* 代表的应该是 a,aa,aaa,aaaa,aaaaa a可以重复无限次,b,bb,bbb,bbbb,bbbbb b可以重复无限次,等等但实际上这里的一个误区是假设 .=[a-z],所以.*=[a-z]*,即 [a-z] [a-z] [a-z]等等 而不是 .=x ,所以.*=xxxxxxxx……...

2020-12-12 21:42:30 47

原创 leetcode常用函数

1. 求容器内所有元素之和使用numeric中的accumulate函数进行求和。#include <numeric>accumulate(v.begin(), v.end(), 0);accumulate带有三个形参:头两个形参指定要累加的元素范围,第三个形参则是累加的初值。如可以使用accumulate把string型的vector容器中的元素连接起来:string sum = accumulate(v.begin() , v.end() , string(" "));

2020-12-10 16:18:07 31

转载 在链表上使用归并排序法(自顶向下的递归和自底向上的迭代两种方法)

转载:leetcode 148题目 官方题解链表的一些辅助函数struct ListNode { int val; ListNode *next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), next(nullptr) {} ListNode(int x, ListNode *next) : val(x), next(next) {}};ListNode* crea

2020-11-22 22:01:11 21

原创 Mac下使用pyenv的一些bug

pyenv global命令无效pyenv global 3.7.0如果是通过brew下载的,需要在profile文件里面添加一句eval "$(pyenv init -)" (步骤:先 cd ~ 然后输入命令 open .bash_profile 打开bash_profile文件,然后添加上这一句话即可)如果是通过git clone下载的,输入pyenv rehash对数据库进行更新即可...

2020-11-13 16:18:57 21

转载 0x3F3F3F3F——算法比赛中的无穷大常量

在算法竞赛中,我们常常需要用到设置一个常量用来代表“无穷大”。比如对于int类型的数,有的人会采用INT_MAX,即0x7fffffff作为无穷大。但是以INT_MAX为无穷大常常面临一个问题,即加一个其他的数会溢出。而这种情况在动态规划,或者其他一些递推的算法中常常出现,很有可能导致算法出问题。所以在算法竞赛中,我们常采用0x3f3f3f3f来作为无穷大。0x3f3f3f3f主要有如下好处:0x3f3f3f3f的十进制为1061109567,和INT_MAX一个数量级,即10^9数量级,而一般场合

2020-11-11 12:57:14 25

原创 leetcode98验证二叉搜索树

我信心满满的写下这个代码。结果,测试用例[10,5,15,null,null,6,20]教我做人。。。可见二叉搜索树的递归中,子树是二叉搜索树,拼在一起就不一定是二叉搜索树了class Solution {public: bool isValidBST(TreeNode* root) { if( !root ) return true; if( root->left ){ if( root->left->val &g

2020-11-06 16:54:31 7

原创 c++二叉树按照数组进行创建

class TreeMathod{private: struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} //已经有构造函数了 }; TreeNode* root;public: void CreateTree(vector&

2020-11-05 10:15:42 29

原创 写动态规划题时那些让人抓狂的bug

leetcode377题当 if(nums[j] <= i) 时 不能直接 memo[i] += memo[i - nums[j]];if(nums[j] <= i){ if(memo[i] == -1 || memo[i - nums[j]] == -1 || (long long)memo[i] + (long long)memo[i - nums[j]] > INT_MAX) memo[i] = -1; else memo[i] +

2020-10-25 09:51:28 11

原创 由leetcode198来思考动态规划

这是一道easy的题目,但是今天我重做的时候,用了一个不一样的方法,对动态规划的理解又深刻了一点。。。主要是将其和背包问题的状态定义的区别更加理解了。之前我对动态规划的理解,就是从最小的一个问题,递推,最终得到最大问题的解。具体我又给其分成两种问题,一种是问题图形画出来是一棵二叉树,一种画出来是多叉树。二叉树问题诸如:斐波那契数列以及其变种(如爬楼梯 / 在一个网格中只能向两个方向移动,让求其最小路径)如这一道问题:其画出来的就是这样的一棵二叉树可以找到其递归结构:状态定义:设 F(n.

2020-10-23 20:07:46 13

原创 leetcode 337 打家劫舍 III

这道题真的一开始我想的是树的层次遍历,然后隔行相加,然后再取这二者的最大值。。。但是如果碰到这个测试用例 [4,1,null,2,null,3],取第1行和第4行的结果为7,而各行求和最大结果才为6所以就参考了一下leetcode的官方讲解//递归的方法class Solution {private: unordered_map <TreeNode*, int> f, g; //f表示结点选中情况在该点的最大值 g表示结点不选中情况在该点的最大值 vo.

2020-10-19 19:21:44 12

原创 leetcode第211场周赛

???? 这次只做出来一题。。。第三题调了好久,刚开始就想着用multimap来存键值对,结果忘记了multimap的排序是不稳定的。。。哎,后来用系统的排序算法,其底层是用快排写的,也是不稳定的。。。哎,耽误好久class Solution {private: int res = -1;public: int maxLengthBetweenEqualCharacters(string s) { int n = s.size();

2020-10-18 14:46:52 34 1

原创 leetcode第37场双周赛

又是只做出来两道选手。。。第一名26分钟就四道都AC完了 ????class Solution {public: double trimMean(vector<int>& arr) { vector<int> result; sort(arr.begin(), arr.end()); int length = arr.size(); int start = le

2020-10-18 10:18:46 30

原创 leetcode47 全排列(去重问题)

这道题相对于leetcode46多了一个去重操作。在代码上也就是在往保存的vector里push进元素的时候多了这么一行判断 if (vis[i] || (i > 0 && nums[i] == nums[i - 1] && !vis[i - 1])) { continue; }即当vis[i] = 0时,有两种情况:1。后面的不成立,即没有被访问过的时候,会先访问它2。这种情况就是在回溯到底的时候,即栈中.

2020-10-08 00:13:07 20

原创 leetcode第209场周赛

这也是我的第一场周赛。。。 好烦啊,自己连二叉树基本操作都忘了,只暴力的A了一题。调程序的时候,实验室还有人一直BBB,真烦。先把A的第一题代码放上class Solution {public: int specialArray(vector<int>& nums) { int len = nums.size(); int i = 0; while( i <= len ){ int count

2020-10-04 11:53:39 39

原创 leetcode 215 ---- 快速排序

//用快速排序来写的 这里一定要明确每个变量的定义,不然很容易出错class Solution {public: int findKthLargest(vector<int>& nums, int k) { return findKthLargest(nums, 0, nums.size() - 1, k); } //在[l,r]之间寻找第k大个元素private: int findKthLargest( vector<.

2020-09-25 15:43:36 29

原创 二分查找法中的一些注意事项

int BinarySearch( vector<int>& nums, int target ){ int l = -1, r = nums.size() ; // 在(r,n)之间查找target while( l + 1 < r ){ // 之前为这个 l < r (-1,0) 这时候已经没有元素了 //int mid = (l + r) / 2; //可能整型溢出 int ...

2020-09-24 23:23:56 26

原创 机器学习 —— NumPy中对向量和矩阵的操作

NumPy(Numerical Python)是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。比Python自身的List结构要高效的多,因为其将一维数组看作向量,二维数组看作矩阵来处理。numpy基本操作# int8, int16, int32, int64 四种数据类型可以使用字符串 'i1', 'i2','i4','i8' 代替# 将数据类型应用于 ndarray 对象import numpy as npdt = np.dtype

2020-07-14 15:43:19 110

原创 leetcode六月每日一题 leetcode14

暴力解法~class Solution {public: string longestCommonPrefix(vector<string>& strs) { if(strs.empty()) return ""; string res=""; for(int i=0;i<strs[0].size();i++){ for(int j=1;j<strs.size();j++){ .

2020-06-15 19:42:57 65

原创 leetcode六月每日一题 leetcode1300(二分查找法)

class Solution {public: int findBestValue(vector<int>& arr, int target) { sort(arr.begin(), arr.end()); //排序 vector<int> presum(arr.size() + 1); //初始每个元素为0 for (int i = 1; i <= arr.size(); i ++) presum[i] = .

2020-06-14 23:12:36 79

原创 leetcode六月每日一题 leetcode15(双指针)

class Solution { //要去掉重复的三元组public: vector<vector<int>> threeSum(vector<int>& nums) { int target; vector<vector<int>> ans; sort( nums.begin(),nums.end() ); //将所给的数据排序 for.

2020-06-12 15:39:34 51

原创 leetcode六月每日一题 leetcode739(单调栈)

这个题目我读了半天才读懂。。。题目是这个意思,给出一个每一天的温度列表,然后让你输出还有多少天才能达到比今天温度高如在第一天的73度,只需要一天,即第2天温度就是74度,比它高了.所以输出为1如在第3天的75度,就需要再过4天,到第7天的76度,温度才比75度高。所以输出为4这道题维护一个从栈底到栈顶单调递减的栈。栈中存的是数组的下标。当栈为空的时候,或者要 入栈元素i小于或等于栈顶元素j 时,入栈。 当要入栈元素大于栈顶元素时,将栈顶元素弹出,并将答案数组中对应的天数赋值为 i - jclas.

2020-06-11 12:15:48 54

原创 leetcode六月每日一题 面试题46

拿到这道题,首先想到的就是动态规划。即当前的这个数字可以自己翻译,也可以和前一个数字一起翻译。和青蛙跳台阶是一个道理的class Solution {public: int translateNum(int num) { string str = to_string(num); if(str.length() == 1) return 1; int ans[str.length()]; ans[0] = 1; if( (str[0] - .

2020-06-09 16:43:43 42

原创 leetcode六月每日一题 leetcode 990

这一题利用并查集(可以高效的回答连接类的问题)来解决首先遍历所有的等式,构造并查集。同一个等式中的两个变量属于同一个连通分量,因此将两个变量进行合并。然后遍历所有的不等式。同一个不等式中的两个变量不能属于同一个连通分量,因此对两个变量分别查找其所在的连通分量,如果两个变量在同一个连通分量中,则产生矛盾,返回 false。如果遍历完所有的不等式没有发现矛盾,则返回 true。class UnionFind{private: vector<int> save;public:.

2020-06-08 14:59:05 36

原创 leetcode六月每日一题 leetcode126

class Solution {public: vector<vector<string>> findLadders(string beginWord, string endWord, vector<string>& wordList) { int end = find(wordList.begin(), wordList.end(), endWord) - wordList.begin(); if(end == w.

2020-06-07 23:36:35 43

原创 leetcode六月每日一题 leetcode 238

这道题看提示说不要用除法,我心里一想,为啥会用到除法?原来可以将所有数组里的元素全都乘起来,然后除去每个遍历的元素。。。但是此法禁止用啊~看了一下,用左右乘积这个方法来求很巧妙。具体就是设置一个left用来保存当前扫描到元素左边所有元素的乘积,用right来保存当前扫描到元素右边所有元素的乘积。 然后一个循环之后,也就是经历了一个交叉后,将左右元素乘积都乘一起了 也就求解了~class Solution {public: vector<int> productExceptSel.

2020-06-04 23:26:09 76

原创 使用wps来进行论文的排版需要注意的问题

这篇文章来自我深深的无奈和菜。原谅我的排版技巧还停留在使用空格和格式刷走遍天下的境界。这次毕设论文真的是。。。由于自己的office 365激活码早已经过期了。所以就用wps来进行排版。再加之mac和win之间的打开文件格式问题,导致被老师骂了两遍,说不认真,知道最后一次把我转的pdf给他看(就连这个页眉都和其他同学的不一样。。。),才证明我并没有偷懒啊。。。不过确实很菜,记录几个点。1 自己被老师指出最大的问题就是每一章没有单独分页和图片错位,丢失。究其原因是自己每次换下一页都是用空格打过去的。。。导致

2020-06-04 03:30:28 334

原创 wechall: Training: WWW-Robots (HTTP, Training) Web入门初试

今天下午一度很迷茫。。。一是看了研究生院老师的研究方向,另一个是衡量了一下自己目前的水平,心里真的不免倒吸一口冷气。。。更加担忧的是三年之后,自己仍在ACM与CTF之间徘徊,然后没有那些本科就工作的同学们成长的快(无论是技术还是薪资上)由于大三的时候有及短暂的呆过院的ctf队,和一个搞Web的同学关系还可以,看到其在朋友圈发了自己的offer,想了想他平时是乐于助人的那一种,就赶紧虚心求教,希望指点一二,不至于自己三年之后再次面临毕业即失业的尴尬场景。由于本科自己是真的心气太高,干啥事总想搞最难的那种,

2020-06-02 22:57:42 169

原创 ctf的第一小步

由于最近偶然之间录取到了网络空间安全的研究生,也算是歪打误撞重拾起自己当初大三因为考研被老师踢出ctf队的一个遗憾吧。其实我也搞不清楚自己是更喜欢ACM一点还是更喜欢CTF一点???? 不管了,既然得到了这次机会,那就好好把握吧。由于自己之前就搞过一小段时间的PWN(看来走过的路真的不会白走。。。当时在软工的时候弄这个觉得自己听不务正业的,没想到有一天我竟然专门学这个。。。),所以我就在网上搜了一下,这个里面推荐的教程不错ctf入门指南于是我就来试了一下使用wechall网站,在注册之后,自己也是一脸

2020-06-01 23:46:55 471

原创 leetcode五月每日一题 leetcode101

class Solution {public: bool isSymmetric(TreeNode* root) { return ismirror(root,root); } bool ismirror(TreeNode* p,TreeNode* q){ if(!p&&!q)//都为NULL return true; if(!p||!q)//有一个为NULL .

2020-05-31 21:32:40 64

原创 leetcode五月每日一题 leetcode84

这道题如果用暴力解法的话,枚举每一个矩形,然后来计算其面积。但是会报超时错误????然后参考了一下;leetcode的官方题解class Solution {public: int largestRectangleArea(vector<int>& heights) { int n = heights.size(); vector<int> left(n), right(n); stack<

2020-05-30 22:49:18 66

原创 leetcode五月每日一题 leetcode 198

哎呦,今天的每日一题之前已经做过了。正好给我节约时间准备明天的答辩????,不过作为动态规划不是很熟练的同学,这道题归为简单题也有一点点难吧class Solution {public: int rob(vector<int>& nums) { int n = nums.size(); if( n == 0 ) return 0; vector<int> memo(n ,-1); memo[n-1]

2020-05-29 23:25:19 78

原创 leetcode五月每日一题 leetcode394

注意:1.3[a]2[bc] 3[a2[c]] 这两个测试用例不好平衡,如果不是按string弹入栈而是用char的话,这两个用例就会很乱2.当前面的数字超过10的时候,需要times = 10*times + s[i] - '0'; 先乘以10一下class Solution {public: string decodeString(string s) { stack<int> num; stack<string> str;..

2020-05-28 14:33:53 73

原创 leetcode五月每日一题 leetcode974

class Solution {public: int subarraysDivByK(vector<int>& A, int K) { unordered_map<int, int> record = {{0, 1}}; int sum = 0, ans = 0; for (int elem: A) { sum += elem; // 注意 C++ 取模的特殊性,当被.

2020-05-27 23:21:17 78

原创 leetcode五月每日一题 leetcode287(Floyd 判圈算法)

class Solution {public: int findDuplicate(vector<int>& nums) { int res = 0; for (int fast = 0; res != fast || fast == 0;){ res = nums[res]; fast = nums[nums[fast]]; } cout << res; for (int i = 0; re.

2020-05-26 23:32:41 59

操作系统真相还原.pdf

因为资源整体大于300M,无法直接上传,所以下下来的是txt文档,里面是百度网盘链接地址和密码,如果打不开的话,里面有联系方式,方便找本人发资源

2018-11-08

LIBSVM: A Library for Support Vector Machines

学习SVM不能不读的一个论文~

2021-01-01

操作系统真相还原前7章xmind.zip

这个是自己在学习的过程中利用xmind制作的思维导图,方便自己日后复盘 包括前7章内容 主要研究了一下保护模式和实模式

2020-03-01

华南理工大学计算机专业课试卷

本人花费了全部积分在CSDN上下载的,觉得对考研的同学有用,欢迎考华工CS的小伙伴下载~

2019-01-06

linux命令行与shell脚本文件

linux命令行与shell脚本 里面是一个txt文档,文档里面是百度网盘资源~

2018-11-08

APUE第三版pdf

里面的是txt文档,里面包括文件的百度网盘地址,因为一直存在网盘里,上传的话有点麻烦,就麻烦各位同学自己在网盘上下载了~虽然网盘速度很感人、,,里面有失效联系地址,方便联系本人发原资源

2018-11-08

c++ primer 第五版 英文版 pdf

c++ primer 第五版 英文版 pdf c++ primer 第五版 英文版 pdf

2018-04-22

csapp_bomb实验

csapp bomb 实验资源 This is an x86-64 bomb for self-study students.

2018-04-22

空空如也

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

TA关注的人 TA的粉丝

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