模拟
nlp87v5
这个作者很懒,什么都没留下…
展开
-
力扣#451 根据字符串出现频率排序(难度:中等)
题目:给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例1:输入:"tree"输出:"eert"解释:'e'出现两次,'r'和't'都只出现一次。因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。解题思路:本题是考查数据结构运用的模拟题。1. 先使用哈希表对词频进行统计;2. 遍历统计好词频的哈希表,将每个键值对对象以{字符,词频}的形式存储到大顶堆中。3. 从大顶堆中依次弹出,构造答案字符串。代码示例:原创 2021-07-29 21:23:44 · 136 阅读 · 0 评论 -
力扣#190 颠倒二进制位(难度:中等)
题目:颠倒给定的 32 位无符号整数的二进制位。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的示例 2中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。解题思路:java中整数在电脑中的存储机制:正数按其二进制存储,负数按其二..原创 2021-07-28 20:18:14 · 105 阅读 · 0 评论 -
力扣#65 有效数字(难度:困难)
题目:有效数字(按顺序)可以分成以下几个部分: 一个 小数 或者 整数 (可选)一个 'e' 或 'E' ,后面跟着一个 整数小数(按顺序)可以分成以下几个部分: (可选)一个符号字符('+' 或 '-') 下述格式之一: 至少一位数字,后面跟着一个点 '.' 至少一位数字,后面跟着一个点 '.' ,后面再跟着至少一位数字 一个点 '.' ,后面跟着至少一位数字整数(按顺序)可以分成以下几个部分: (可...原创 2021-07-19 10:56:14 · 151 阅读 · 0 评论 -
力扣#59 螺旋矩阵Ⅱ(难度:中等)
题目:给你一个正整数n ,生成一个包含 1 到n *n所有元素,且元素按顺时针顺序螺旋排列的n x n 正方形矩阵 matrix 。示例:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]解题思路:矩阵的填充顺序为从左上到右上,从右上到右下,从右下到左下,从左下到左上,逐层向内缩减。我们应想办法使循环过程中遵循相同的边界条件,因此在每个方向的遍历填充过程中,遵循左闭右开的规则,右边界的元素交给下一个方向的遍历填充过程来完成,如下图所示:每种颜...原创 2021-07-17 11:11:09 · 139 阅读 · 0 评论 -
力扣#38 外观数列(难度:中等)
题目:给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列: countAndSay(1) = "1" countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。1. 12. 113. 214. 12115. 111221第一项是数字 1描述前一项,这个数...原创 2021-07-15 15:10:04 · 95 阅读 · 0 评论 -
力扣#31 下一个排列(难度:中等)
题目:实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。示例 :输入:[4,2,0,2,3,2,0]输出:[4,2,0,3,0,2,2]解题思路:找下一个排列更大的数,我们尽可能的将低位的数字变大,其实就是将k位到最低位的所有数作为候选,判断是否有更大的数可以填入k位中,换句话说,我们要找的第k位其实就是从低位到高位第一个下降原创 2021-07-15 11:29:20 · 79 阅读 · 0 评论 -
力扣#14 最长公共前缀(难度:简单)
题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。解题思路:1. 定义StringBuilder对象res用来存储最长公共前缀,设置初始值"";2. 字符串数组长度如果为1,则字节范围索引为0的字符串;3. 遍历strs字符串数组,定义一个整型变量j,记录遍历到第几个索引位置的字符。判断第一个字符串的长度是否大于j,如果大于则取出第一个字符串的j索引位置的字符记录为c,接着步骤4的遍历,否则结束遍历;4. 当把第一个字符串的j索引位置的字.原创 2021-07-13 10:28:56 · 91 阅读 · 0 评论 -
力扣#13 罗马数字转整数(难度:简单)
题目:罗马数字包含以下七种字符:I,V,X,L,C,D和M。例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况: ...原创 2021-07-12 09:21:36 · 94 阅读 · 0 评论 -
力扣#12 整数转罗马数字(难度:中等)
题目:罗马数字包含以下七种字符:I,V,X,L,C,D和M。原创 2021-06-17 14:08:03 · 153 阅读 · 0 评论 -
力扣#8 字符串转换整数(难度:中等)
题目:请你来实现一个myAtoi(string s)函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。 读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。 将前面步...原创 2021-06-16 10:46:11 · 94 阅读 · 0 评论 -
力扣#6 Z字形变换 (难度:中等)
题目:将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下:原创 2021-06-11 15:08:04 · 108 阅读 · 1 评论 -
力扣#5 最长回文子串 (难度:中等)
题目:给你一个字符串 s,找到 s 中最长的回文子串。原创 2021-06-10 11:14:15 · 592 阅读 · 1 评论 -
力扣#2 两数相加(难度:中等)
题目:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。...原创 2021-06-09 16:21:05 · 1022 阅读 · 1 评论