自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jasscical's blog

jasscical学习成长记录

  • 博客(170)
  • 资源 (1)
  • 收藏
  • 关注

原创 jasscical个人博客

Hi~欢迎探访jasscical的足迹~期待与您交流!–>戳一戳个人网站–>戳一戳csdn –>戳一戳gitee–>戳一戳github

2021-07-01 20:18:48 111

原创 动态规划--股票系列(二):买卖股票的最佳时机

之前一篇讲解了股票系列中买卖多次且k值确定下所得的最大利润。现在来分析一下,力扣上其他题目。可解决力扣题目:122、309、714122. 买卖股票的最佳时机 II解法1:贪心假如第0天买入,第3天卖出,那么获得的利润为prices[3]-prices[0]可以分解为:(prices[3]-prices[2])+(prices[2]-prices[1])+(prices[1]-prices[0]),那么问题转化为,每天利润,收集正利润就可以。整体代码如下:class Solution {

2021-07-01 19:51:12 164 1

原创 ubuntu20.04安装cudnn7.0.5

之前安装的cuda9.0+cudnn7.1+tensorflow1.6+gcc5.5.0版本,然后跑代码报错。查看是cudnn版本不兼容,于是换成7.0.5版本。为了以后方便复现环境,把这些上传到百度云。一路踩坑至此,无人指导的痛。比如原来服务器(不是我一个人的)上已经安装了cuda10.0,我需要再安装cuda9.0.就学习怎么安装,然后报错g++版本7.5.0不兼容,好家伙,了解到原来cuda9.0只兼容g++6.0以下的编译器,。服务器上apt连不上网(某位同学设置了代理),搞源搞半天,试了n

2020-11-05 11:23:16 844 3

原创 ubuntu20.04安装多版本的cuda9.0 cuda10.0

条件:服务器上已有cuda10.0、g++7、g++9目的:再安装一个版本cuda9.0(只支持g++6.0以下的);如果你是安装单个版本cuda的,又是不熟悉怎么安装的小白,在处理上会有些不一样,建议看其他的文章。1.安装cuda9.0过程跟着ubuntu安装并切换多个版本的cuda一步一步来,有一些不一样的,因为没有ubuntu20.04的,所以就下载了个ubuntu16.04,直接安装会报错,说g++7.5.0的版本不行,因为ubuntu16.04那时候还没有g++7.x的,所以要安装低版

2020-11-04 10:37:48 7955

原创 Ubuntu20.04 在已有多个版本下安装g++\gcc5.5.0版本

写在前面:服务器环境为ubuntu20.04,cuda10.0+对应的cudnn+英伟达驱动450,g++版本有g++7、g++-9。我需要复刻一个环境,需要tensorflow1.6.0+cuda9.0+cudnn,安装cuda过程说我的g++-7.5.0版本不能编译,百度一波发现cuda9.0支持g++6.0以下的。服务器使用apt下载不了,换源换了几天毫无进展,作罢,只能转向离线安装,第一次是安装g++-4.8.5失败告终。坑踩了不少,对于不熟练linux的菜鸡来说,大部分都得靠百度。次日,强忍

2020-11-03 17:24:07 5827 1

原创 thrift C++学习

下载地址:thrift官网。验证包的完整性,采用md5。

2023-05-13 22:21:33 132

原创 word/wps分页

方法1、将需要设置为奇数页的地方,设置为奇数页方法2、在需要设置为奇数页的后面插入空白页(或偶数页,但不推荐,可以捣鼓捣鼓)

2022-05-26 21:18:28 379

原创 linux或wsl配置vscode的C++调试环境

用的是linux,安装了GDB其中.vscode文件下有两个文件:launch.json、launch.json{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name".

2022-04-11 21:29:28 444

原创 构建、遍历二叉搜索树BST

创建二叉搜索树#include <iostream>#include <climits>#define dataType intusing namespace std;class bstTree{private: dataType val; bstTree* left; bstTree* right;public: // 构造函数 bstTree():val(0), left(nullptr), right(nullptr){}

2021-09-06 20:08:36 201

原创 C/C++自定义string类

笔试的时候遇到这题:自定义string类需要实现的成员函数都已经给出,学过但是自己写起来才发现还很多细节没把握到。习惯用C++的string写代码,C语言的char字符串数组的知识都快忘光了。笔试完继续修改,调试,运行全部为1,表示对应函数实现正确。注意的点:字符数组的拷贝通常用strcpy(a, b),表示b拷贝到astrlen(a)表示的是字符串数组a的长度,不包含最后的‘\0’,但是申请动态空间的时候,需要在字符串字符个数+1,‘\0’是经常要注意的!qsort(数组名,数组大小,siz

2021-08-25 00:53:13 1571

原创 动态规划--股票系列(一):买卖股票的最佳时机

188. 买卖股票的最佳时机 IV思路:2 * k + 1个状态这题是123. 买卖股票的最佳时机 III的进阶版。那么来分析一下,买卖k次每天的状态。如下:0–不操作1–第一次买入2–第一次卖出3–第二次买入4–第二次卖出…2(k-1)-1=2*k-3----第k-1 次买入2(k-1)=2*k-2----第k-1 次卖出2*k-1----第k 次买入2*k----第k 次卖出可以发现,当奇数的时候为买入,偶数的时候为卖出!状态定义:dp[i][j],i表示第i天,j表示

2021-07-01 19:20:20 167 2

原创 实现简单linux服务器

参考:linux简单实现简单功能:客户端输入什么,服务器显示什么创建一个服务器实现socket通信,文件server.c 1 #include <unistd.h> 2 #include <stdio.h> 3 #include <sys/types.h> 4 #include <sys/socket.h> 5 #include <arpa/inet.h> 6 #include <netinet/in.h&g

2021-05-14 10:36:52 168

原创 云笔记--将项目、笔记push到gitee/github

参考文章:如何将一个项目同时提交到GitHub和Gitee(码云)两个仓库这篇博客写的很好,跟着做就可以了。我遇到的一些问题,如下:1.秘钥问题检查你的git能否连接远程仓库ssh -T git@github.com如果显示如下,Permission denied说明秘钥不行,选择重新生成。ssh-keygen -t rsa -C 你注册github的邮箱一路回车!然后到它提示保存秘钥的目录下,找到打开,复制,到你的github\gitee添加该秘钥。验.

2021-05-10 09:30:11 217

原创 typora设置相对路径

为了让typora写的markdown文件里面的图片,在上传到github上能够显示,需要把图片的位置设置成相对路径。做法如下:文件-》偏好设置-》图像,像下面这样操作就行。我之前选了其他的,出错了。这样上传到github就可以看到图片啦~...

2021-05-08 20:07:02 2647

原创 (汇总篇)栈、队列

栈、队列画一画图,比较好理解代码参考力扣大佬:Krahets1.剑指 Offer 31. 栈的压入、弹出序列理解:借助辅助栈stk,当栈里有元素并且栈顶元素等于出栈队列poped[i]时,就模拟一个出栈动作,同时将poped队列往下移动,循环。最后检查栈中是否有元素,如果poped序列是正确的,那么栈模拟会把全部元素都出栈,从而栈中不会留下元素。反之,栈中有元素,说明序列不正确。class Solution {public: bool validateStackSeque

2021-03-22 14:21:13 139

原创 服务器升级下,多用户怎么维护自己的环境

前天服务器升级,由cuda9.0升级到了cuda9.2。相应地cudnn7.0.5升级到了cudnn7.6.5。这导致了我的tensorflow1.6版本的代码运行不了。首先明白系统用户root、普通用户的区别,它们分别对应系统环境变量、用户环境变量。学校服务器有多个用户,用户没有操作系统用户的权限!1.首先进行尝试的是将cuda9.2改回cuda9.0版本。这个需要在~/.bashrc(用户环境变量)下加入cuda9.0的路径vim ~/.bashrc可以进入/usr/local查.

2021-03-11 12:06:32 249

原创 位运算知识

1.向下整除n // 2等价于右移一位n >> 1;取余数n % 2等价于判断二进制最右一位值n & 1 ;2.n / 10 :删除十进制最右边一位 n % 10:取十进制最右边一位3.n & 1 : ==1表示n为奇数, ==0表示为偶数...

2021-03-02 16:34:36 305

原创 (字符串_01)字符串转整数

剑指 Offer 67. 把字符串转换成整数问题复盘:我在拼接数字(我用的权重pow,传入当前的位置)以及数组是否越界那部分卡壳 了,。还有就是判断是否是数字的函数isdigit用法也模糊。用的少就不清晰。以及整体做题时间太长,以后若是超过30小时没写完个大致就直接题解。class Solution {public: int strToInt(string str) { int i = 0, isNegative = 1; while(..

2021-01-15 11:41:01 518

原创 (位运算_01)

2021.1.1,新年第一个博客,哈哈哈哈!!!位运算的一些知识:n & n-1 : 将n的二进制数中最右边的 1 设置成 0x & (-x) : 获取二进制中最右边的 1n & 1 = 0 : 则 n二进制 最右一位 为 0n & 1 = 1 : 则 n 二进制 最右一位 为 1231. 2的幂难度简单266给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例1:输入: 1输出: true解释: 20= 1...

2021-01-01 21:36:37 147

原创 tx2018春招编程系列题目

刷题地址1.小Q定义了一种数列称为翻转数列:给定整数n和m, 满足n能被2m整除。对于一串连续递增整数数列1, 2, 3, 4..., 每隔m个符号翻转一次, 最初符号为'-';。例如n = 8, m = 2, 数列就是: -1, -2, +3, +4, -5, -6, +7, +8.而n = 4, m = 1, 数列就是: -1, +2, -3, + 4.小Q现在希望你能帮他算算前n项和为多少。解题:找数学规律,看2m为一组,n个数可以分为 n/2m组,每一组的和为m的平方,所以总和为.

2020-11-28 16:01:37 189

原创 (链表_02)环形链表(是否有换\环形链表入口)

141. 环形链表142. 环形链表 II解题思路链表是否有环```cpp []//快慢指针1:推荐这种,简洁好理解,第二种不好理解class Solution {public: bool hasCycle(ListNode *head) { if(!head || !head->next) return false; ListNode* fast = head; ListNode* slow = head; wh

2020-11-19 09:02:24 102

原创 (经典算法-01)Fibonacci斐波那契数列

形如: 1 1 2 3 5 8 13 21 34 ...即为斐波那契数列,自己今天图图画画写了三种方法。迭代法class Solution {public: int Fibonacci(int n) { if(n == 0) return 0; if(n == 1 || n == 2) return 1; int f1 = 1; int f2 = 1; n = n - 2; //需要加的次数 .

2020-11-18 21:18:19 171

原创 (链表_01)回文链表(快慢指针、栈、数组)

解题思路快慢指针的话就是每次快指针走两步,慢指针走一步,这里要注意循环的条件。当走完后,slow会在中点的位置。要根据节点的奇偶,来决定中点的位置作者:jasscical链接:https://leetcode-cn.com/problems/palindrome-linked-list/solution/234hui-wen-lian-biao-kuai-man-zhi-zhen-zhan-shu-zu/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非...

2020-11-17 16:54:07 129

原创 (回溯_04)组合总和

39. 组合总和解题思路参考代码随想录1.跟之前组合求和不同的一点是这里允许同一个数字使用多次,在代码中递归中有体现。2.for循环是从选择集中遍历所有元素选择元素;处理过程是对sum求和、path添加元素;递归是往深度探索;回溯与处理过程一一对应。3.这里一个剪枝操作是在for循环的条件语句中加的预判断,如果sum加上当前位置对应的候选元素小于等于目标值target,则需要进行处理递归回溯操作,否则没必要进行。作者:jasscical链接:https://leet.

2020-11-02 16:20:11 140

原创 (回溯_03)求电话号码的组合

17. 电话号码的字母组合解题思路:参考代码随想录,其他见注释class Solution {public: const string letterMap[10] ={ //各个数字对应的字母集合,用下标对应。 "", // 0 "", // 1 "abc", // 2 "def", // 3 "ghi", // 4 "jkl", // 5 "mno", // 6.

2020-10-31 13:33:47 130

原创 (回溯_02)组合求和

216. 组合总和 III77. 组合找出所有相加之和为n 的k个数的组合。组合中只允许含有 1 -9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。示例 1:输入: k = 3, n = 7输出: [[1,2,4]]示例 2:输入: k = 3, n = 9输出: [[1,2,6], [1,3,5], [2,3,4]]解题思路代码随想录结合77题求组合那题,这题的话是加了一个总和的限制。回...

2020-10-29 20:17:36 298

原创 (回溯_01)组合

77. 组合给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。示例:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]解题思路代码随想录回溯三部曲:1.递归函数返回类型和传入参数2.回溯终止条件3.单层搜索的逻辑class Solution {public: vector<vector<int>> ...

2020-10-27 20:50:38 127

原创 (树_25)将二叉搜索树变成累加树

538. 把二叉搜索树转换为累加树给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node的新值等于原树中大于或等于node.val的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。解题思路参考代码随想录首先理解累加树的概念:看题目中的示例1,从右子树开始看,最右8(8),然后7...

2020-10-24 19:53:11 226

原创 (树_24)108.将有序数组构造二叉搜索树BST

108. 将有序数组转换为二叉搜索树难度简单621将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5解题思路参考:代码随想录可以回忆一.

2020-10-23 21:12:01 297

原创 (树_23)修剪二叉搜索树

669. 修剪二叉搜索树给定一个二叉搜索树,同时给定最小边界L和最大边界R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。示例 1:输入: 1 / \ 0 2 L = 1 R = 2输出: 1 \ 2示例 2:输入: 3 / \ 0 4 \ 2 / 1 L...

2020-10-23 20:03:58 96

原创 (树_22)删除BST中某个节点值为key的

450. 删除二叉搜索树中的节点代码随想录力扣传送门解题思路分5种情况,第一种是翻个底朝天都找不到node-val==key的,说明删除不了,返回空指针。第2、3、4、5种情况是找到了node->val == key的,那么根据节点的左右孩子是否存在进行了讨论。最复杂的是左右孩子都不为空的。需要将节点的左孩子,放到节点的右孩子的最左边(所以先要找到这个最左孩子),作为左孩子(这段结合Carl的图自己画画就直观了)。后面的就是node->val跟key的比较,然后用左孩子或.

2020-10-22 00:26:30 136

原创 (树_21)在BST中插入一个值

701. 二叉搜索树中的插入操作给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据保证,新值和原始二叉搜索树中的任意节点值都不同。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。例如,给定二叉搜索树: 4 / \ 2 7 / \ 1 3和 插入的值: 5你可以返回这个二叉搜索树: ...

2020-10-21 19:52:41 415

原创 (树_20)求二叉(搜索)树的最小公共祖先

235. 二叉搜索树的最近公共祖先给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树:root =[6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = ...

2020-10-19 23:59:26 1185

原创 (踩坑)windows下的linux子系统迁移至非系统盘

踩坑如下:先在微软应用市场下载linux然后安装完,再做目录链接会出现linux启动失败问题 先做目录链接会导致应用市场下载linux失败,如下图:正确操作如下:注意两个路径:linux默认安装路径: C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc 假如我们要迁移linux到的其他路径为:H:\Linux\Canonica.

2020-10-19 21:44:10 3709 9

原创 (树_19)求BST中的众数

501. 二叉搜索树中的众数给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义:结点左子树中所含结点的值小于等于当前结点的值 结点右子树中所含结点的值大于等于当前结点的值 左子树和右子树都是二叉搜索树例如:给定 BST[1,null,2,2], 1 \ 2 / 2返回[2].解题思路:参考代码随想录三种方式:第一种map+vector+中序可以求...

2020-10-16 23:30:20 116

原创 (树_18)求二叉搜索树最小绝对差

530. 二叉搜索树的最小绝对差解题思路参考(代码随想录)跟(98.判断是否为BST、二叉树遍历方法、验证二叉搜索树)类似的解法只要是BST,中序都可以看成是一个有序递增的数组。 INT_MAX是整数类型最大值,INT_MIN是整数类型最小值,代码有注释为何要使用最大值 三种方式:vector套路、递归(用一个pre保存上一个节点)、迭代法(模拟递归,跟98题结构类似,掌握这种套路)```cpp []/**BST套路:递归加进vector看成有序数组 * Def..

2020-10-15 21:47:40 117

原创 (树_17)树的前中后序遍历以及统一写法

参考:代码随想录、统一写法144. 二叉树的前序遍历145. 二叉树的后序遍历94. 二叉树的中序遍历/**前序遍历 * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * };

2020-10-14 15:04:34 156

原创 (树_16)验证是否是BST

解题思路:四种方式,都是用到中序(BST为递增序列):将所有节点值放入vector,然后判断是否为递增序列 设置一个最小值maxVal,遍历左右子树,处理中间节点时,符合当前节点值大于maxVal值,要不断更新maxVal值,不符合直接返回false 设置一个指针保存上一个节点,然后处理中间节点与第二个方式类似,注意一下判断的条件 迭代法:模拟中序递归,不太好写 ```cpp []/**中序将各节点值放入vector,判断是否为递增序列 * Definitio...

2020-10-14 14:36:03 145

原创 (树_15)二叉搜索树中搜索给定的值

700. 二叉搜索树中的搜索难度简单93给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。例如,给定二叉搜索树: 4 / \ 2 7 / \ 1 3和值: 2你应该返回如下子树: 2 / \ 1 3在上述示例中,如果要找的值是5,但因为没有节点值为...

2020-10-13 22:28:35 348

原创 (树_14)合并二叉树

617. 合并二叉树难度简单548给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为NULL 的节点将直接作为新二叉树的节点。示例1:输入: Tree 1 Tree 2 1 2 ..

2020-10-12 22:57:19 141

black.vssettings

黑色高亮的代码编辑风格!在vs2010 工具(Tools)->导入导出设置(import and export settings),导入这个文件就可以开始疾风操作!

2019-09-27

空空如也

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

TA关注的人

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