- 博客(150)
- 资源 (2)
- 收藏
- 关注
原创 win10、win11安装pytorch(可用)
到 https://download.pytorch.org/whl/torch_stable.html 里面找。cpu/torch-2.1.2%2Bcpu-cp311-cp311-win_amd64.whl即可下载。对应的pytorch下载:cp311,torch版本我也安装的最新的2.1.2。我是安装的最新的anaconda包,Python是3.11版本的。看Python版本,安装对应的pytorch版本。安装的时候,要在conda环境安装,执行。注意:要用国内源噢。
2024-01-03 18:44:00
2166
1
原创 大数相加 + 大数相乘
1. 大数相加题目描述:以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。思路:从后往前依次加两个字符串的数字,保留其进位,与下次相加结果再进行相加,直到两个都计算完。最后判断进位是否1(如果有进位的话,一定是1),若有进位,加上去即可。string solve(string s, string t) { // write code here int carry = 0, tmp1 = 0, tmp2 = 0; int n1 = s
2021-08-29 10:09:12
392
原创 打家劫舍三部曲
打家劫舍 I一条街道,不能偷相邻房屋,问可以取得的最大钱数。打家劫舍 I分析:dp[i]: 偷前 i 个房间可以获得的最大钱数;是否偷第i个房间,由dp[i] = max(dp[i - 1], dp[i - 2] + nums[i]]);int rob(vector<int>& nums) { // dp[i] : 偷前 i 个房间,可以获得的最大利润 int n = nums.size(); vector<int&g
2021-08-27 16:05:37
143
原创 修改文件夹里所有文件权限
需求因为我经常需要在虚拟机和主机之间交换文件,Xftp可以很轻松做到这一点,但是文件权限是个问题,移动到虚拟机里面的文件权限普通用户使用不了。所以有了这个需求。实现# 一行代码搞定, 将Desktop文件夹下所有文件的权限设置成所有人可读可写可执行。chmod -R 777 ~/Desktop ...
2021-08-07 08:09:50
766
原创 xftp传文件乱码,且导致目标主机桌面文件全部消失
xftp传输文件乱码打开xftp设置,将“使用UTF-8编码”打上勾。结束。目标主机桌面文件全部消失不见,但是可以ls看到sudo apt install gnome-shell-extension-desktop-icons然后注销当前用户,重新登录即可。结束。...
2021-08-02 16:11:41
376
原创 xshell连接虚拟机中的Ubuntu
将网络适配器改成 桥接模式。在虚拟网络编辑器里面也将其改成桥接模式这时候虚拟机和主机应该是可以相互ping通Ubuntu安装ssh,并配置ssh sudo apt install openssh-server vim /etc/ssh/sshd_config # 将其中的允许root用户登录改为yes并: service sshd restart这样,打开xshell,理论上来说就可以连接上了。...
2021-08-02 15:30:52
98
原创 vmware安装tools的方法
找到vmware软件标题栏中的 “虚拟机 – > 安装 vmware tools”,点击之后可以在Ubuntu中发现一个压缩包。将此压缩包解压到一个地方,一直打开文件,直到发现 vmware-install.pl这个文件,然后 sudo ./vmware-install.pl即可。在此过程中可能会要求你输入yes或no,反正一直无脑yes即可。注:有可能第一步中的 “安装 vmware tools” 是黑色的,点击不了,那么就把虚拟机关闭,软件重启,应该就可以操作了。...
2021-07-25 01:10:25
723
1
原创 Ubuntu密码正确但无法执行 su
原因:root用户默认是被锁定了解决:只要使用passwd命令重新设置下root密码即可。sudo passwd 密码:<--- 输入安装时那个用户的密码输入新的 Linux 密码:<--- 新的Root用户密码重新输入新的 Linux 密码:<--- 重复新的Root用户密码passwd:已成功更新密码 dbl@ubuntu:~$ su 密码:<--输入重置的新密码 root@ubuntu:/home/dbl# #已经进入root用户...
2021-07-24 23:05:16
534
1
原创 MATLAB “警告: 在 matlabrc 中执行启动失败。”
1. 问题在matlab启动时,会抛出一个异常。2. 解决方法命令行输入 “edit pathdef.m”,将其中与上面这个目录相关的路径全都给注释掉。命令行输入 “edit startup.m”,修改其中启动参数。直接清空里面所有代码即可。注:startup.m是一个用户自定义启动文件,里面可以写一些在matlab启动时可以干的一些事,提高工作效率。...
2021-07-12 09:39:18
3327
原创 4. 带障碍物的不同路径
1. 题目描述输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]输出:2解释:3x3 网格的正中间有一个障碍物。从左上角到右下角一共有 2 条不同的路径:1. 向右 -> 向右 -> 向下 -> 向下2. 向下 -> 向下 -> 向右 -> 向右来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/unique-paths-ii著作权归领扣网络所有。商业转载请联系官
2021-07-07 15:34:20
427
原创 3. 不同路径
1. 题目描述2. 解法思路:动态规划。动规五部曲:确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组上面的五个部分的详细信息都嵌在代码中。int uniquePaths(int m, int n) { // 1. dp[i][j]:走到第 i 行 第j 列 的路径总数; // 2. dp[i][j] = dp[i - 1][j] + dp[i][j - 1]; // 3. dp[
2021-07-07 15:33:07
106
原创 2. 使用最小花费爬楼梯
1. 题目描述数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。链接:https://leetcode-cn.com/problems/min-cost-climbing-stairs示例 1: 输入:cost = [10, 15, 20]
2021-07-06 16:11:46
86
原创 1. 斐波那契数
1. 题目描述斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1) = 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给你 n ,请计算 F(n) 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/fibonacci-number著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出
2021-07-06 15:08:35
461
原创 虚函数与多态
虚函数与多态1. 定义虚函数的作用是为了实现多态的机制。多态:用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这样可以实现“多种形态”,这是一种泛型技术。2. 虚函数表每个含有虚函数的类都有一个虚函数表(Virtual Table),C++编译器应该保证虚函数表的指针存在于对象实例中最前面的位置(这是为了保证取到虚函数表的有最高的性能—–如果有多重继承情况)。这就意味着我们通过对象实例的地址得到这张虚函数表,然后就可以遍历其中函数指针,并调用相应函数。每一个类都有一
2021-06-23 23:16:36
164
原创 我眼中的KMP
我眼中的KMP1. KMP可以用来解决什么问题KMP主要应用在字符串匹配上。KMP的主要思想是:当模式串与主串出现不匹配的字符时,可以知道一部分已经匹配的文本内容,可以利用这个避免重头开始匹配,大大的节省了时间。2. KMP怎么用KMP算法核心在于next数组的求解,但在求解前后缀、最长公共前后缀。下面分别对这三个概念加以阐述:1. 前缀和后缀假设你的字符串是 aabaaf啥叫前缀呢?前缀就是带有第一个字符但不包括最后一个字符的所有顺序子串。那么前缀就是:a,aa,aab,aaba,aabaa
2021-06-23 23:11:30
115
原创 编译过程(新手向)
编译过程1. 编译器介绍GCC(GNU Compiler Collection)是GNU的编译器集合,它可以编译C、C++、JAVA、Fortran等语言。gcc是GCC中的C编译器;g++是GCC中的C++编译器。gcc与g++的主要区别:编译和链接阶段有所不同。对于 *.c 和 *.cpp文件,g++统一当做cpp文件编译;gcc则分别当做c和cpp文件编译;使用g++编译时,g++会自动链接标准库STL;gcc则不会自动链接STL,如果想要链接的话,则需要加上参数 -lstdc++g
2021-06-21 08:56:27
209
原创 解决Chrome打开外部链接时添加后缀(%20--with-chrome- plus-plus%20--disable-features=RendererCodelntegrity,Flash)的问题
1. 为什么会有这个问题?chrome浏览器的根目录文件夹中有一个文件是version.dll,这是一个第三方文件,作用是禁用chrome停止开发者模式提示的第三方插件,正是此文件的存在导致了打开外链失败。2. 解决此问题正如上面所说,我们只需要删除version.dll即可。找到version.dll右键单击chrome,打开文件所在位置;找到version.dll删除左键选中,按一下delete即可。重启Chrome,完美解决。...
2021-06-18 16:18:51
3039
1
原创 53. 对称二叉树
1. 题目描述给定一个二叉树,检查它是否是镜像对称的。2. 基础解法思路:递归。准备两个相同的树,分别递归比较一棵树的左子树和另一棵树的右子树。迭代:还是准备两个相同的树,不过分别将树1的左子树、树2的右子树、树2的左子树、树1的右子树分别压入队列中。然后分别对队列头的前两个元素作比较,若不一致,则false,否则,一直到队列为空。// 递归class Solution {public: bool isSymmetric(TreeNode* root) { retur
2021-06-16 16:08:35
69
原创 JZ45. 扑克牌顺子
题目描述:现在有2副扑克牌,从扑克牌中随机五张扑克牌,我们需要来判断一下是不是顺子。有如下规则:A为1,J为11,Q为12,K为13,A不能视为14大、小王为 0,0可以看作任意牌如果给出的五张牌能组成顺子(即这五张牌是连续的)就输出true,否则就输出false。例如:给出数据[6,0,2,0,4]中间的两个0一个看作3,一个看作5 。即:[6,3,2,5,4]这样这五张牌在[2,6]区间连续,输出true数据保证每组5个数字,每组最多含有4个零,数组的数取值为 [0, 13]?1.
2021-06-16 16:05:26
134
原创 VS2017在Release模式下进行调试
1. 为啥要在Release下调试,直接在Debug下调试不香嘛?原因有2:我是在用用C++写OpenSim的控制程序,OpenSim的程序基本都是在Release模式下运行的(我也不太清楚为啥Debug模式不太行),但是我又需要调试信息,看一些中间变量,所以不得不寻找一种可以在Release模式下调试的机制;发布版本中发生的许多错误可能不会在调试版本中发生。2. 怎么配置Release下调试?右键单击您的项目,选择“属性”。单击C / C ++节点。将调试信息格式设置为C7兼容(
2021-06-15 22:01:25
2569
1
原创 JZ44. 翻转单词序列
题目描述:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“nowcoder. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a nowcoder.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?1. 分析思路:挨个读取字符串的每个字符,若不是空格,就将该字符保存到一个临时字符串中;若读到了空格,则将临时字符串保存到结果字符
2021-06-15 13:56:37
104
原创 52. 验证二叉搜索树
1. 题目描述给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/validate-binary-search-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2. 基础解法思路:递归。如果该二叉树的左子树不为空,则
2021-06-15 13:53:02
97
原创 51. 不同的二叉搜索树II
1. 题目描述给你一个整数 n ,请你生成并返回所有由 n 个节点组成且节点值从 1 到 n 互不相同的不同 二叉搜索树 。可以按 任意顺序 返回答案。2. 基础解法思路:递归。先从简单的看起:根据[1, n]序列构造任意一个二叉搜索树可以在[1, n]序列中选任意一个数m为根,则以[1, m-1]为左子树,[m+1, n]为右子树,即可保证二叉搜索树的性质可以发现,左右子树也可以 根据[序列] 构造 [二叉搜索树],那么 递归 二字就呼之欲出了设定递归边界:序列区间不可用,即左区间大于右区
2021-06-09 15:46:16
126
原创 JZ41. 和为S的连续正数序列
题目描述:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!返回值描述:输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序。输入:9返回值:[[2,3,4],[4,5
2021-06-09 15:43:33
82
原创 50. 不同的二叉搜索树
1. 题目描述给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。2. 基础解法思路:动态规划。设定状态:dp[i] : i个节点存在的二叉搜索树的个数。令f(i)表示为以i为根节点的二叉搜索树的个数。则有:dp[n] = f(1) + f(2) + … + f(n);当i为根节点时,其左子树节点个数为[1, 2, …, i - 1],右子节点个数为[i + 1, i + 2,…, n]。所以当i为根节点时,其左子
2021-06-08 15:31:36
112
原创 JZ43. 左旋转字符串
题目描述:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!输入:"abcXYZdef",3返回值:"XYZdefabc"1. 分析本题意思就是把前面的n个字符给移动到后面去。那么如果出现n大于字符串长度呢?对字符串长度取余即可。然后将两个字串拼接。注:
2021-06-08 15:30:48
103
原创 JZ42. 和为S的两个数字
题目描述:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。返回值描述:对应每个测试案例,输出两个数,小的先输出。1. 分析思路:证明一个递增数组,相距越远,乘积越小。**假设:**若b>a,且存在,a + b = s;(a - m ) + (b + m) = s则:(a - m )(b + m)=ab - (b-a)m - m*m < ab;说明外层的乘积更小左右夹逼即可。2. 用C
2021-06-07 17:29:22
107
原创 49. 二叉树的中序遍历
1. 题目描述给定一个二叉树的根节点 root ,返回它的 中序 遍历。2. 基础解法思路1:递归。思路2:使用栈来辅助。思路1:class Solution { public: vector<int> res; vector<int> inorderTraversal(TreeNode* root) { dfs(root, res); return res; } void dfs(TreeN
2021-06-07 17:25:26
77
原创 48. 旋转链表II
1. 题目描述给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2. 基础解法思路:以1->2->3->4->5,
2021-06-06 11:11:25
64
原创 JZ40. 数组中只出现一次的两个数字
题目描述:一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。1. 分析哈希表:用哈希表保存数组中的每个元素,key:数组中的每个元素;val:每种元素出现的次数。之后再遍历一遍哈希表即可。异或:当只有一个数出现一次时,我们把数组中所有的数,依次异或运算,最后剩下的就是落单的数,因为成对儿出现的都抵消了。 依照这个思路,我们来看两个数(我们假设是AB)出现一次的数组。我们首先还是先异或,剩下的数字肯定是A、B异或的结果,这个结果的二进制中的1,表现的是A
2021-06-06 11:10:39
143
原创 JZ37. 数字在升序数组中出现的次数
题目描述:统计一个数字在升序数组中出现的次数。输入:[1,2,3,3,3,3,4,5],3返回值:41. 分析思路:一个暴力直接的方法:遍历整个数组;二分法:先用二分框架找到目标值,然后左右遍历,记录次数。2. 用C++写出逻辑// 暴力法 int GetNumberOfK(vector<int> data ,int k) { int len = data.size(); if(len < 0) return -1;
2021-06-05 16:33:26
69
原创 47. 解码方法
1. 题目2. 分析动态规划:dp[i]表示s的前i个字符解码的个数,dp[i+1]对应s[i]及以前的字符解码个数,当s[i-1]==‘2’&&s[i]<=‘6’,这两个字符合起来也是一种解码方式属于区间[20,26],所以dp[i+1]需要加上dp[i-1]。实际上有两个约束条件:0不能单独解码两位数必须在1与26之间。这道题目实际上是用DP去做,仔细想的话,可以发现就是约束版的f(n) = f(n-1) + f(n-2); 其中如果是s[n-1]为0,
2021-06-05 16:32:22
76
原创 二叉树的非递归遍历实现
1. 二叉树的遍历二叉树的递归遍历大家再熟悉不过了,简单的3~5行代码就可以搞定遍历问题,但是现在面试基本都是要求写出二叉树的非递归实现,这就稍微有点难度了。下面我将以一个小白的视角带你过一遍二叉树的非递归遍历实现原理以及相应的C++代码实现。话不多说,现在开始????2.遍历过程我将用最简单的二叉树来说明算法思路,待遍历的二叉树【 1 – 2 – 3】。前序遍历:根左右;中序遍历:左根右;后序遍历:左右根。注意:对于左右子树的遍历,一定是先遍历左子树,再去遍历右子树。3. 非递归框架
2021-06-04 17:15:06
673
原创 46. 子集II
1. 题目给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/subsets-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2. 分析相似题目:子集本题作为子集的升级版,唯一升级的就是需要去重,其他完全一样。怎么去重?判断现在索引到的数据与之前的那个是否一
2021-06-04 17:11:50
76
原创 JZ36. 找出两个链表的公共节点
题目描述:输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)1. 分析厘清思路:假定 List1长度: a+n List2 长度:b+n, 且 a<b那么 p1会先到链表尾部,这时p2 走到 a+n位置,将p1换成List2头部接着p2 再走 b+n-(n+a) =b-a 步到链表尾部,这时p1也走到List2的b-a位置,还差a步就到可能的第一个公共节点。将p2 换成 List1头部,p2走a步也到可能的第一个公
2021-06-04 17:09:15
67
原创 JZ35. 数组中的逆序对
题目描述:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%10000000071. 分析最傻的办法:对于每个元素,均与其后面的每个元素相比较。复杂度O(N^2)。归并排序,具体实现细节在代码中提现。2. 用C++写出逻辑思路1:int InversePairs(vector<int> data) { if (data.size() <
2021-06-03 19:07:01
116
原创 45. 合并两个有序数组
1. 题目给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-sorted-array著作权归领扣网络所有。商业转载请联系官方授权,非商业转载
2021-06-03 19:05:33
101
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人