- 博客(207)
- 收藏
- 关注
转载 Inno Setup 打包
#Inno setup打包教程如需转载请标明出处:http://blog.youkuaiyun.com/itas109QQ技术交流群:12951803##下载地址1.官方版本:http://www.jrsoftware.org/isdl.php2.汉化版本:http://download.youkuaiyun.com/download/itas109/101582022017-12-14 版本5.5.91.安装程序1、按照上述地址下载Inno Setup软件进行安装。这里以汉化版本为例程。2.
2021-10-24 10:00:00
608
原创 多线程篇之什么是多线程
1什么是线程?在计算机上运行的程序是一组指令和一组指令参数的组合,指令按照既定的逻辑控制计算机执行。操作系统会以进程为单位,分配系统资源,进程是资源分配的最小单位,线程是操作系统调度执行的最小单位,真正完成代码执行的是线程,而进程是线程的容器,或者说是线程的执行环境。2 线程和进程的区别进程有自己独立的地址空间,多个线程共用同一个地址空间(1)线程更加节省系统资源,效率不仅能够保持,而且能够更高。(2)在一个地址空间中多个线程独享:每个线程都有属于自己的栈区,寄存器。(3)在一个地址.
2021-06-06 18:36:54
258
原创 创建目录和删除目录
1 创建单级目录CreateDirectory创建一个新目录。如果底层文件系统支持文件和目录的安全,则该函数将指定的安全描述符应用于新目录。要指定模板目录,请使用CreateDirectoryEx函数。BOOL CreateDirectoryA( LPCSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes);1.1 参数介绍(1)lpPathName:要创建的目录的路径。(2)指向.
2021-05-31 23:12:37
783
原创 设置文件指针
1 设置文件指针SetFilePointer移动指定文件的文件指针。此函数将文件指针存储在两个LONG值中。要处理大于单个LONG值的文件指针,使用SetFilePointerEx函数更容易。DWORD SetFilePointer( HANDLE hFile, LONG lDistanceToMove, PLONG lpDistanceToMoveHigh, DWORD dwMoveMethod);1.1 参数介绍(1)hFile:文件的句柄。必须使用GEN..
2021-05-31 22:45:44
789
原创 文件的读取和写入
1 文件的读取ReadFile从指定的文件或输入/输出 (I/O) 设备读取数据。如果设备支持,读取发生在文件指针指定的位置。BOOL ReadFile( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped);1.1 参数介绍(1)hFile:设备
2021-05-30 12:08:09
1181
原创 获取文件大小
1 获取文件大小GetFileSize检索指定文件的大小。DWORD GetFileSize( HANDLE hFile, LPDWORD lpFileSizeHigh);1.1 参数介绍(1)hFile:文件句柄。(2)lpFileSizeHigh:指向返回文件大小高位双字的变量的指针。如果应用程序不需要高位双字,则此参数可以为NULL。即当文件的大小不超过4G的情况下,则不需要该变量。1.2 返回值如果函数成功,则返回值是文件大小的低位双字,如果lpFileS.
2021-05-30 11:14:23
2510
原创 文件的创建、打开和关闭操作
1 文件的创建和打开CreateFile创建或打开文件或 I/O 设备。最常用的 I/O 设备如下:文件、文件流、目录、物理磁盘、卷、控制台缓冲区、磁带驱动器、通信资源、邮槽和管道。该函数返回一个句柄,该句柄可用于根据文件或设备以及指定的标志和属性为各种类型的 I/O 访问文件或设备。HANDLE CreateFileA( LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD
2021-05-30 10:44:03
1432
原创 文件拷贝、移动和删除操作
1 文件拷贝BOOL CopyFile( LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName, BOOL bFailIfExists);1.1 参数介绍(1)lpExistingFileName:已存在的文件名字,即被复制的文件。(2)lpNewFileName:复制后的文件名。(3)bFailfExists:传入为TRUE时,如果文件存在则执行失败;传入为FLASE时,如果文件存在则重新生成文件将原来的文件覆盖掉,并
2021-05-30 09:57:54
327
原创 两个Windows下的API函数(热身篇)
1 URLDownloadToFile函数通过函数名字不难看出,该函数的功能为根据ULR将资源下载到指定文件。1.1 参数介绍HRESULT URLDownloadToFile( LPUNKNOWN pCaller, LPCTSTR szURL, LPCTSTR szFileName, _Reserved_DWORD...
2021-05-29 13:00:13
259
原创 LeetCode 201——数字范围按位与(位运算)
一、题目介绍给你两个整数 left 和 right ,表示区间 [left, right] ,返回此区间内所有数字 按位与 的结果(包含 left 、right 端点)。示例 1:输入:left = 5, right = 7输出:4示例 2:输入:left = 0, right = 0输出:0示例 3:输入:left = 1, right = 2147483647输出:0提示:0 <= left <= right <= 231 - 1来源:力扣
2021-05-25 16:53:19
201
原创 LeetCode 137——只出现一次的数字II(位运算)
一、题目介绍给你一个整数数组nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。示例 1:输入:nums = [2,2,3,2]输出:3示例 2:输入:nums = [0,1,0,1,0,1,99]输出:99提示:1 <= nums.length <= 3 * 10^4-2^31 <= nums[i] <= 2^31 - 1nums 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次.
2021-05-24 15:07:30
155
原创 LeetCode 566——重塑矩阵
一、题目介绍在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例 1:输入: nums = [[1,2], [3,4]]r = 1, c = 4输出: [[1,
2021-02-02 11:50:50
196
原创 LeetCode 563——二叉树的坡度(DFS)
一、题目介绍给定一个二叉树,计算 整个树 的坡度 。一个树的 节点的坡度 定义即为,该节点左子树的节点之和和右子树节点之和的 差的绝对值 。如果没有左子树的话,左子树的节点之和为 0 ;没有右子树的话也是一样。空结点的坡度是 0 。整个树 的坡度就是其所有节点的坡度之和。输入:root = [1,2,3]输出:1解释:节点 2 的坡度:|0-0| = 0(没有子节点)节点 3 的坡度:|0-0| = 0(没有子节点)节点 1 的坡度:|2-3| = 1(左子树就是左子节点,所
2021-02-02 10:59:28
180
原创 LeetCode 551——学生出勤记录I
一、题目介绍给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:'A' : Absent,缺勤'L' : Late,迟到'P' : Present,到场如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。你需要根据这个学生的出勤记录判断他是否会被奖赏。示例 1:输入: "PPALLP"输出: True示例 2:输入: "PPALLL"输出: False来源:力扣(LeetCode)链接:http
2021-02-02 10:03:18
126
原创 LeetCode 543——二叉树的直径(深度优先搜索DFS)
一、题目介绍给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回3, 它的长度是路径 [4,2,1,3] 或者[5,2,1,3]。注意:两结点之间的路径长度是以它们之间边的数目表示。来源:力扣(LeetCode)链接:https://...
2021-02-02 09:49:19
201
原创 LeetCode 541——反转字符串 II
一、题目介绍给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔2k 个字符的前 k 个字符进行反转。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例:输入: s = "abcdefg", k = 2输出: "bacdfeg"提示:该字符串只包含小写英文字母。给定字符串的长度和 k 在 [1, 10000] 范围内。来源:力扣(LeetCode)链接:https..
2021-02-01 17:40:21
188
原创 LeetCode 530——二叉搜索树的最小绝对差(中序遍历)
一、题目介绍给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。示例:输入: 1 \ 3 / 2输出:1解释:最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。提示:树中至少有 2 个节点。本题与 783 https://leetcode-cn.com/problems/minimum-distance-between-bst-nodes/ 相同来源:力扣(LeetCo.
2021-02-01 16:00:01
199
1
原创 LeetCode 521——最长特殊序列 I
一、题目介绍给你两个字符串,请你从这两个字符串中找出最长的特殊序列。「最长特殊序列」定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列)。子序列 可以通过删去字符串中的某些字符实现,但不能改变剩余字符的相对顺序。空序列为所有字符串的子序列,任何字符串为其自身的子序列。输入为两个字符串,输出最长特殊序列的长度。如果不存在,则返回 -1。示例 1:输入: "aba", "cdc"输出: 3解释: 最长特殊序列可为 "aba" (或 "cdc"),两者均为自身的子
2021-02-01 15:24:04
283
原创 LeetCode 520——检测大写字母
一、题目介绍给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如"USA"。单词中所有字母都不是大写,比如"leetcode"。如果单词不只含有一个字母,只有首字母大写,比如"Google"。否则,我们定义这个单词没有正确使用大写字母。示例 1:输入: "USA"输出: True示例 2:输入: "FlaG"输出: False注意: 输入是由大写和小写拉丁字母组成的非空单词。来源:力扣(Leet..
2021-02-01 14:18:19
191
原创 LeetCode 509——斐波那契数(动态规划)
一、题目介绍斐波那契数,通常用F(n) 表示,形成的序列称为 斐波那契数列 。该数列由0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1)= 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给你 n ,请计算 F(n) 。示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 = 1示例 2:输入:3输出:2解释:F(3) = F(2) + F(1) = 1 + 1 =...
2021-02-01 12:14:49
203
原创 LeetCode 507——完美数
一、题目介绍对于一个正整数,如果它和除了它自身以外的所有 正因子 之和相等,我们称它为 「完美数」。给定一个整数n,如果是完美数,返回 true,否则返回 false示例 1:输入:28输出:True解释:28 = 1 + 2 + 4 + 7 + 141, 2, 4, 7, 和 14 是 28 的所有正因子。示例 2:输入:num = 6输出:true示例 3:输入:num = 496输出:true示例 4:输入:num = 8128输出:true示...
2021-02-01 12:01:43
236
原创 LeetCode 506——相对名词(排序+查找)
一、题目介绍给出N 名运动员的成绩,找出他们的相对名次并授予前三名对应的奖牌。前三名运动员将会被分别授予 “金牌”,“银牌” 和“ 铜牌”("Gold Medal", "Silver Medal", "Bronze Medal")。(注:分数越高的选手,排名越靠前。)示例 1:输入: [5, 4, 3, 2, 1]输出: ["Gold Medal", "Silver Medal", "Bronze Medal", "4", "5"]解释: 前三名运动员的成绩为前三高的,因此将会分别被.
2021-02-01 11:07:16
402
1
原创 LeetCode 504——七进制数
一、题目介绍给定一个整数,将其转化为7进制,并以字符串形式输出。示例 1:输入: 100输出: "202"示例 2:输入: -7输出: "-10"注意: 输入范围是 [-1e7, 1e7] 。二、解题思路本题目的是将十进制数转成7进制数,按照以下步骤进行计算即可:(1)对输入为0的情况,进行特判;(2)计算给定数值num对7取余的结果,将余数保存到字符串res中。(3)不断更新num的值,num /= 7,知道num为0为止;(4)根据num的正负值情况,确
2021-02-01 10:11:45
328
原创 LeetCode 501——二叉搜索树中的众数
一、题目介绍给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义:结点左子树中所含结点的值小于等于当前结点的值结点右子树中所含结点的值大于等于当前结点的值左子树和右子树都是二叉搜索树例如:给定 BST [1,null,2,2], 1 \ 2 / 2返回[2].提示:如果众数超过1个,不需考虑输出顺序进阶:你可以不使用额外的空间吗?(假设由递归产生的隐式调用栈的开销不被计算在
2021-01-29 17:55:35
176
原创 LeetCode 500——键盘行
一、题目介绍给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。美式键盘 中:第一行由字符 "qwertyuiop" 组成。第二行由字符 "asdfghjkl" 组成。第三行由字符 "zxcvbnm" 组成。示例 1:输入:words = ["Hello","Alaska","Dad","Peace"]输出:["Alaska","Dad"]示例 2:输入:words = ["omk"]输出:[]示例 3:输入
2021-01-27 14:59:56
220
原创 LeetCode 496——下一个更大元素 I
一、题目介绍给你两个 没有重复元素 的数组nums1 和nums2,其中nums1是nums2的子集。请你找出 nums1中每个元素在nums2中的下一个比其大的值。nums1中数字x的下一个更大元素是指x在nums2中对应位置的右边的第一个比x大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]解释: 对于 num1 中的数字 4 ...
2021-01-27 12:56:57
98
原创 LeetCode 492——构造矩形
一、题目介绍作为一位web开发者, 懂得怎样去规划一个页面的尺寸是很重要的。 现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面。要求:1. 你设计的矩形页面必须等于给定的目标面积。2. 宽度 W 不应大于长度 L,换言之,要求 L >= W 。3. 长度 L 和宽度 W 之间的差距应当尽可能小。你需要按顺序输出你设计的页面的长度 L 和宽度 W。示例:输入: 4输出: [2, 2]解释: 目标面积是 4, 所有可能的构
2021-01-27 12:33:48
160
原创 LeetCode 482——密钥格式化
一、题目介绍有一个密钥字符串 S ,只包含字母,数字以及 '-'(破折号)。其中, N 个 '-' 将字符串分成了 N+1 组。给你一个数字 K,请你重新格式化字符串,使每个分组恰好包含 K 个字符。特别地,第一个分组包含的字符个数必须小于等于 K,但至少要包含 1 个字符。两个分组之间需要用 '-'(破折号)隔开,并且将所有的小写字母转换为大写字母。给定非空字符串 S 和数字 K,按照上面描述的规则进行格式化。示例 1:输入:S = "5F3Z-2e-9-w", K = 4输出:"
2021-01-27 11:49:31
168
原创 LeetCode 476——数字的补数(位运算)
一、题目介绍给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。示例 1:输入: 5输出: 2解释: 5 的二进制表示为 101(没有前导零位),其补数为 010。所以你需要输出 2 。示例 2:输入: 1输出: 0解释: 1 的二进制表示为 1(没有前导零位),其补数为 0。所以你需要输出 0 。注意:给定的整数保证在 32 位带符号整数的范围内。你可以假定二进制数不包含前导零位。来源:力扣(LeetCode)链接:https://leetcod.
2021-01-27 09:58:17
200
原创 LeetCode 463——岛屿的周长
一、题目介绍给定一个 row x col 的二维网格地图 grid ,其中:grid[i][j] = 1 表示陆地, grid[i][j] = 0 表示水域。网格中的格子 水平和垂直 方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。示例 1:输入:g
2021-01-26 23:35:22
269
原创 LeetCode 453——最小操作次数使数组元素相等(动态规划)
一、题目介绍给定一个长度为n的非空整数数组,每次操作将会使n- 1 个元素增加 1。找出让数组所有元素相等的最小操作次数。示例:输入:[1,2,3]输出:3解释:只需要3次操作(注意每次操作会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-moves-to-equ...
2021-01-26 12:01:12
3845
原创 LeetCode 455——分发饼干(排序+贪心算法)
一、题目介绍假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j]。如果 s[j]>= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例1:输入: g = [1,2,3], s = [1,1]输出: 1解释: 你有三个孩子和两块小饼干,3...
2021-01-26 11:28:09
254
原创 LeetCode 448——找到所有数组中消失的数字
一、题目介绍给定一个范围在1 ≤ a[i] ≤ n (n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/fin...
2021-01-25 22:13:29
123
原创 LeetCode 441——排列硬币
一、题目介绍你总共有n枚硬币,你需要将它们摆成一个阶梯形状,第k行就必须正好有k枚硬币。给定一个数字n,找出可形成完整阶梯行的总行数。n是一个非负整数,并且在32位有符号整型的范围内。示例 1:n = 5硬币可排列成以下几行:¤¤ ¤¤ ¤因为第三行不完整,所以返回2.示例 2:n = 8硬币可排列成以下几行:¤¤ ¤¤ ¤ ¤¤ ¤因为第四行不完整,所以返回3.来源:力扣(LeetCode)链接:https://leetcod...
2021-01-25 17:38:59
157
原创 LeetCode 434——字符串中的单词数
一、题目介绍统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例:输入: "Hello, my name is John"输出: 5解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/number-of-segments-in-a-string著作权归领扣网络所有。商业转载请联系官
2021-01-25 17:08:16
168
1
原创 LeetCode 228——汇总区间(滑动窗口)
一、题目介绍给定一个无重复元素的有序整数数组 nums 。返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。列表中的每个区间范围 [a,b] 应该按如下格式输出:"a->b" ,如果 a != b"a" ,如果 a == b示例 1:输入:nums = [0,1,2,4,5,7]输出:["0->2","4->5","7"]解释:区间范围是:
2021-01-25 16:02:11
119
原创 LeetCode 114——二叉树展开为链表
一、题目介绍给定一个二叉树,原地将它展开为一个单链表。例如,给定二叉树 1 / \ 2 5/ \ \3 4 6将其展开为:1\ 2 \ 3 \ 4 \ 5 \ 6来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list著作...
2021-01-25 11:12:28
94
原创 LeetCode 147——对链表进行插入排序
一、题目介绍对链表进行插入排序。插入排序算法:(1)插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。(2)每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。(3)重复直到所有输入数据插入完为止。二、解题思路 因为题目给的链表结构为单链表,所以进行插入的时候没办法从后向前遍历,因此当检测到当前节点的值大于前一节点时,就从前向后遍历找到第一个小于当前节点的节点,再执行插入。在插入的过程中需要处理好如下...
2020-11-20 12:04:19
134
原创 LeetCode 978——最长湍流子数组
一、题目介绍 当 A的子数组A[i], A[i+1], ..., A[j]满足下列条件时,我们称其为湍流子数组:若i <= k < j,当 k为奇数时,A[k] > A[k+1],且当 k 为偶数时,A[k] < A[k+1];或 若i <= k < j,当 k 为偶数时,A[k] > A[k+1],且当 k为奇数时,A[k] < A[k+1]。也就是说,如果比较符号在子数组中的每个相邻元素对之间翻转,则该子数组是湍流子数...
2020-11-18 17:36:29
115
原创 LeetCode 134——加油站
一、题目介绍 在一条环路上有N个加油站,其中第i个加油站有汽油gas[i]升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1个加油站需要消耗汽油cost[i]升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。示例1:输入: gas = [1,2,3,4,5]cos...
2020-11-18 11:17:02
103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人