- 博客(54)
- 收藏
- 关注
原创 Linux | 不同版本Python的安装与切换
我的 docker 镜像中已经预装了 python-3.8,通过 python3 命令调用,最近跑程序需要用到 python-2.7,在这里记录一下自己安全切换不同版本 Python 的过程。查看现有 python 版本 和 python 安装位置:python -Vwhereis python1、下载 python-2.7.9下载地址:https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz可以通过下方命令下载:.
2021-08-25 21:22:50
1568
原创 Linux | Gitee 新建仓库、上传和更新文件
脑子越来越不好使了,写一个步骤给自己看一、Gitee 新建仓库并上传文件1、登录 Gitee,在 Gitee 上新建仓库,填写相关内容,创建仓库2、初始化本地 git 仓库在 Linux 相应文件夹下面输入命令:git init初始化本地 git 仓库,命令执行完成后,会在 Linux 文件夹下面创建一个 .git 文件夹3、添加远程版本库git remote add Gitee仓库地址4、拉取仓库文件到本地gitee pull origin m.
2021-08-23 21:39:01
2715
原创 Linux | PyCharm 2021.2 (Professional) 调试远程服务器程序
目前在网上搜到的利用 PyCharm 调试远程服务器程序的教程大多都是针对 PyCharm 2020、2019,甚至更早版本,PyCharm 2021 做了一定的更新,导致之前的教程不是特别适用,故在此记录下自己用 PyCharm 2021 调试远程服务器程序的过程,希望能帮助大家绕过许多坑。一、PyCharm 2021.2 (Professional) 的安装与激活官网下载:https://www.jetbrains.com/zh-cn/pycharm/高校学生有一年的免费使用期,具体.
2021-08-19 20:13:59
894
1
原创 智能合约 | Solidity 合约之间相互转账、调用方式区分
一、以太币传输方式在三种以太币传输方式中,以太币的接收方都由位于开头的<address> 指定。1、transfer<address payable>.transfer(uint256 amount)//特点://发生异常情况时,转账失败,抛出异常//有gas限制,最大23002、send<address payable>.send(uint256 amount) returns (bool)//特点://发生异常情况时,只会返.
2021-07-26 21:44:58
3596
原创 Linux | 安装过程记录
1、联网安装 dockerdocker run --net host -v /home/ljl/docker_data/:/data --name="ljn_ubuntu" -i -t ubuntu:latest /bin/bash2、ping
2021-06-16 19:00:46
321
原创 Linux | Node.js 安装与环境配置
简单来说,Node.js是运行在服务器端的JavaScript。1、Node.js 下载官方下载地址:Node.js Downloads
2021-06-16 13:48:08
5578
1
原创 形式化方法 | Symbolic Execution(符号执行)
最近写论文遇到了符号执行方法,想起来上学期上《形式化方法》课有专门关于符号执行的内容,在此先就课堂内容和课后作业对符号执行做一个简要的概述吧。1 背景引言相关1.1 程序验证方法的范围程序安全性验证的技术如下:横轴-Cost 程序验证的代价/要求(对程序员的要求、时间、经验等等)纵轴-Confidence 可信度(1)Ad-hoc Testing(随机测试) 随机测试是没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。主要是根据测试者的经验对软...
2020-11-03 15:14:51
4993
4
原创 leetcode #264 丑数 II | 刷题之路第二站——动态规划类问题
题号 264题目描述编写一个程序,找出第n个丑数。丑数就是质因数只包含2, 3, 5的正整数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1是丑数。 n不超过1690。解题思路一——暴力法【超出时间限制】采用哈希表 unum 存储目前已经找到的丑数,key是丑数的值,value是标识该丑数是第几个。对于第 1 个 ~ 第 5 个丑数直接存入哈希表 un...
2020-08-15 16:35:16
226
原创 leetcode #221 最大正方形 | 刷题之路第二站——动态规划类问题
题号 221题目描述在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4解题思路——动态规划使用数组 dp[ i ][ j ] 表示以元素 ( i, j ) 为右下角,且只包含 1 的正方形的边长的最大值 。(1)对于第一行和第一列元素而言,以该元素为右小角的正方形只包含该元素自己,所以: 当 i == 0 或者...
2020-08-13 17:53:36
311
原创 leetcode #213 打家劫舍 II | 刷题之路第二站——动态规划类问题
此题是leetcode #198 打家劫舍 | 刷题之路第二站——动态规划类问题的改进,在原有基础上,将线性队列改成了环形队列。题号 213题目描述你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。...
2020-08-12 11:39:07
171
原创 leetcode #198 打家劫舍 | 刷题之路第二站——动态规划类问题
题号 198题目描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = .
2020-08-12 10:31:07
198
原创 leecode #152 乘积最大子数组 | 刷题之路第二站——动态规划类问题
题号 152题目描述给你一个整数数组nums,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。解题思路一——暴力法对于给定数组 nums 中的每个元素 nums[ i ],分别计算:nums[ 0 ] ~ nums...
2020-08-11 18:48:27
148
原创 leetcode #139 单词拆分 | 刷题之路第二站——动态规划类问题
题号 139题目描述给定一个非空字符串s和一个包含非空单词列表的字典wordDict,判定s是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词示例1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。示例2:输入: s = "applepen...
2020-08-10 14:40:08
239
原创 leetcode #121 买卖股票的最佳时机 | 刷题之路第二站——动态规划类问题
题号 121题目描述给定一个数组,它的第i个元素是一支给定股票第i天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你...
2020-08-10 09:47:00
139
原创 leetcode #120 三角形最小路径和 | 刷题之路第二站——动态规划类问题
题号 120题目描述给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点在这里指的是下标与上一层结点下标相同或者等于上一层结点下标 + 1的两个结点。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最说明:如果你可以只使用O(n)的额外空间(n为三角形的总行数)来解决这个问题,那么你的算法会很加分。小路径和为11(即,2+3+5...
2020-08-07 13:31:56
243
原创 2020上半年总结
距离上次写2019下半年总结还不到半年的时间,研究生阶段的成绩都已经出来了,绩点应该不会再有什么变化,小刘同学返苏也有月余,想想不如对2020年的上半年做个总结,也好把小刘同学的脑袋从论文的海洋里稍稍解救出来。 一、实习 很遗憾,小刘同学没能如愿进行暑期实习,在六月末也投了二三家大厂,可惜连简历筛选就没进,所受打击颇深。 一开始就是很怂地不敢参加内推,也是自己没到非要去实习不可的境地,另外因为研究生一年级这一年在实验室确实没做出什么成果,不敢向导师提出想要去实习的想法...
2020-08-07 11:13:54
277
原创 软件测试 | 期末复习——面向对象的软件测试
1 面向对象测试的概述面向对象软件测试的目标与传统测试一样:用尽可能低的测试成本和尽可能少的测试用例,发现尽可能多的软件缺陷。面向对象的测试策略也遵循从“小型测试”到“大型测试”,即从单元测试到最终的功能性测试和系统性测试。变化面向对象 = 对象 + 类 + 继承 + 通信新特点:封装、继承、多态这些变化带来了产生新错误的可能,带来了测试的变化:(1)基本功能模块系统的基本构造单元不再是传统的功能模块,而是类和对象。在测试过程中,不能仅检查输入数据产生的输出结果是否.
2020-07-05 10:24:44
3182
1
原创 软件测试 | 期末复习——软件测试规范【GB/T 15532-2008】
【总则】1 测试条目组织对主要的测试类别都是按:“测试对象和目的”、”测试的组织和管理“、”技术要求“、”测试内容“、”测试环境“、”测试方法“、”准入条件“、”准出条件“、”测试过程“、”输出文档“等条目做出要求。2 测试过程软件测试过程一般包括四项活动:测试策划、测试设计、测试执行、测试总结。(1)测试策划主要是进行测试需求分析。(2)测试设计依据测试需求,分析并选用已有的测试用例或设计新的测试用例。(3)测试执行.
2020-07-04 14:34:01
2236
原创 软件测试 | 期末复习——测试基础【白盒测试】
【白盒测试概念】白盒测试(也称结构测试或逻辑驱动测试),它从程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑路径进行测试。应用白盒法时,手头必须有程序的规格说明及程序清单。白盒法考虑的是测试用例对程序内部逻辑的覆盖程度。穷举测试不可行,希望的是尽量提高覆盖的程度。【测试覆盖标准】1 测试覆盖率为了衡量测试的覆盖程度,需建立一些标准。测试覆盖率用于确定测试所执行到的覆盖项的百分比。测试覆盖率包括:功能点覆盖率和逻辑覆盖率(1)功能点覆盖率:大致用于表示软件.
2020-07-03 10:24:16
1480
2
原创 软件测试 | 期末复习——测试基础【黑盒测试用例设计】
【测试用例设计概述】1 测试用例的定义(1)测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。(2)测试用例是执行的最小实体。2 测试用例的重要性3 好测试用例的特点(1)完整性对测试用例最基本的要求。涵盖所有的基本功能项,还要考虑临界测试、压力测试、性能测试等方面。(2)准确(3)清晰、简洁测试用例的最大操作步骤最好控制在15步之内。(4)可维护性测试用例可以进行修改、增加、删除等。(5)适当性测试用例应该适合特定的测试环境.
2020-06-29 22:37:20
3225
原创 软件测试 | 期末复习——软件测试综述
【软件缺陷概述】1 软件缺陷是什么1.1 软件出错机理软件出错机理可描述为:(1)软件错误(error)是指软件生存期内的不希望或不可接受的人为错误,其结果是导致软件缺陷的产生。(2)软件缺陷(bug)是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差,其结果是软件运行于某一特定条件时出现软件故障,这时称软件缺陷被激活。(3)软件故障(fault)是指软件运行过程中出现的一种不希望或不可接受的内部状态,此时若无适当措施加以及时处理,便产生软件失效。(4)
2020-06-21 11:09:01
2004
原创 软件测试 | 期末复习——软件质量概述
【质量和软件的概念】1 质量(quality)ISO9001:2008 定义:质量为一组固有特性满足要求的程度。(1)特性:可区分的特征(2)要求:明示的、通常隐含的或必须履行的需求或期望质量具有经济性、广义性、时效性、相对性。产品:ISO9000:2008 解释:产品是过程的结果。产品可以分为 4 种类别:硬件、流程性材料、软件、服务或者它们的组合。2 影响质量的因素人、机(设备)、物(材料)、方法、环境3 质量目标在质量方面所追...
2020-06-18 16:03:41
2903
原创 形式化方法 | Proof Engineering for Predicate Logic——Coq tatics 在谓词逻辑证明中的应用
关于Coq的安装、使用及Coq tatics在命题逻辑中的应用详见:形式化方法 | Proof Engineering in Coq——Coq tatics 在命题逻辑证明中的应用一、谓词逻辑(也成为一阶逻辑、量化逻辑)1、谓词谓词是一个包含变量(谓词变量)的语句,根据这些变量的值,它可以为 True 或者 False。2、谓词逻辑谓词逻辑使用关系、表达式和量化扩展命题逻辑...
2020-05-08 11:35:10
2095
原创 形式化方法 | SAT Problems Solving ——使用Z3来验证问题的可满足性
一、SAT1、SAT 问题Boolean Satisfiability Problem 布尔可满足性问题,简称 SAT 问题,是确定给定命题的逻辑公式是否为 TRUE,并且进一步确定使得公式为 TRUE 的一组model。2、SAT Solver解决 SAT 问题的程序或工具就叫做 SAT Solver。此处使用到的 Z3 Theorem Solver/Prover 就是一款 ...
2020-05-07 08:47:38
4652
原创 leetcode #96 不同的二叉搜索树 | 刷题之路第二站——动态规划类问题
题号 96题目描述给定一个整数n,求以1 ...n为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 ...
2020-04-15 18:20:19
144
原创 leetcode #91 解码方法 | 刷题之路第二站——动态规划类问题
题号 91题目描述一条包含字母A-Z的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26示例1:输入: "12"输出: 2解释: 它可以解码为 "AB"(1 2)或者 "L"(12)。示例2:输入: "226"输出: 3解释: 它可以解码为 "BZ" (2 26), "VF" (22 6), 或...
2020-04-13 18:41:42
174
原创 leetcode #70 爬楼梯 | 刷题之路第二站——动态规划类相关问题
题号70问题描述假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定n是一个正整数。示例1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 ...
2020-04-13 11:09:22
204
原创 leetcode #64 最小路径和 | 刷题之路第二站——动态规划类问题
题号 64题目描述给定一个包含非负整数的mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。链接:leetcode #64 最小路径和解题思路——动态规...
2020-04-12 21:48:37
238
原创 leetcode #63 不同路径 II | 刷题之路第二站——动态规划类问题
题号 63题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用1和0来表示。说明:m和n的值均不超过 100。示例:...
2020-04-12 00:13:52
409
原创 形式化方法 | Proof Engineering in Coq——Coq tatics 在命题逻辑证明中的应用
一、Coq的安装与使用1、Coq简介 Coq是一款交互式证明辅助工具,提供一套证明系统,可以编写证明、检查证明;也提供一套形式化语言,可编写数学算法、定义、定理;它还可以用于程序的正确性证明。2、Coq的安装Coq-8.11.0 安装包【Windows、MacOS】链接:https://pan.baidu.com/s/1rAjW8D6G5GJI3sQP1JfG7g...
2020-04-10 00:16:41
5017
1
原创 C++ | VS2017中对C++代码进行单元测试【四则运算的单元测试】
之前都是使用 JUnit 对 Java 代码编写测试用例,最近了解到 Visual Studio 中也可以直接对 C/C++/C# 等代码进行单元测试,先记录下基本操作过程,以便于后期再进行深入学习。程序功能及要求:编写四则运算程序,确定测试单元,设计测试用例,借助某单元测试工具做单元测试。1、编写四则运算程序此处主要是为了体验单元测试,因此只采用简单的两数分别进行加、减、...
2020-03-30 17:10:17
1237
3
原创 leetcode #62 不同路径 | 刷题之路第二站——动态规划类问题
题号 62题目描述一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?示例1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有...
2020-03-21 18:13:25
250
原创 leetcode #53 最大子序和 | 刷题之路第二站——动态规划类问题
题号 53题目描述给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。链接:leetcode #53 最大子序和解题思路1——暴力法1- 设定两个指针 : maxSub...
2020-03-20 10:54:15
163
原创 leetcode #5 最长回文子串【暴力法、动态规划、Manacher算法】 | 刷题之路第二站——动态规划类问题
题号 5题目描述给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。示例1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例2:输入: "cbbd"输出: "bb"链接:leetcode #5 最长回文子串解题思路1——暴力法1- 找出给定字符串的所有子串2- 按照子串的长...
2020-03-08 12:08:56
259
原创 【算法详解】KMP算法——主串与模式串的匹配问题
一、KMP算法的算法思想位置 0 1 2 3 4 5 6 7 8 9 10 主串 a b b a a b b a a b a 模式串 a b b a a b a 我们想要...
2020-03-06 22:52:52
4690
原创 【算法详解及经典例题】动态规划算法(Dynamic Programming)——装配线调度问题、矩阵连乘问题
动态规划算法(Dynamic Programming)——从入门到精(fang)通(qi)一、动态规划方法的基本步骤1- 描述问题的最优解(optimal solution)结构特征;2- 递归定义最优解值;3- 自底向上计算最优解值;4- 从已计算得到的最优解值信息中构造最优解。二、动态规划的要素1、最优子结构性质(1)重要性 所解问题必须具有最...
2020-03-02 11:52:04
915
原创 2019下半年总结
今天是2020年2月29日,四年一遇的日子。 今年也是小刘同学24岁的第二个本命年。 2020年,在我小的时候,好像就约定俗成地等同于未来,自然也会有诸多的畅想,未来之所以美好,不就是因为它有无限的可能性嘛。今年过了一个异常安静和特殊的春节,爸妈得以给自己放了一个长假,我现在还在距离学校数百公里外的徐州写下今天的这篇总结。 2019年对小刘同学来说,算得上...
2020-02-29 23:52:11
306
原创 leetcode #34 在排序数组中查找元素的第一个和最后一个位置 | 刷题之路第一站——数组类相关问题
题号 34题目描述给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8...
2020-02-28 22:11:16
208
原创 leetcode #33 搜索旋转排序数组 | 刷题之路第一站——数组类相关问题
题号 33题目描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0...
2020-02-27 22:38:02
210
原创 leetcode #31 下一个排列 | 刷题之路第一站——数组类相关问题
【谁能想到我已经八天没有刷力扣了orz……】题号 31题目描述实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,...
2020-02-26 23:38:56
116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人