自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 未排序数组中累加和为给定值的最长子数组长度

未排序数组中累加和为给定值的最长子数组长度题目描述:给定一个无序数组arr, 其中元素可正、可负、可0。给定一个整数k,求arr所有子数组中累加和为k的最长子数组长度输入描述:第一行两个整数N, k。N表示数组长度,k的定义已在题目描述中给出第二行N个整数表示数组内的数输出描述:输出一个整数表示答案示例1输入5 01 -2 1 1 1输出3备注:1≤N≤1051 \leq N \leq 10^51≤N≤105−109≤k≤109-10^9 \leq k \leq 10^9

2020-10-31 17:17:01 117

原创 未排序正数数组中累加和为给定值的最长子数组的长度

未排序正数数组中累加和为给定值的最长子数组的长度题目描述给定一个数组arr,该数组无序,但每个值均为正数,再给定一个正数k。求arr的所有子数组中所有元素相加和为k的最长子数组的长度例如,arr = [1, 2, 1, 1, 1], k = 3累加和为3的最长子数组为[1, 1, 1],所以结果返回3[要求]时间复杂度为O(n)O(n)O(n),空间复杂度为O(1)O(1)O(1)输入描述:第一行两个整数N, k。N表示数组长度,k的定义已在题目描述中给出第二行N个整数表示数组内的数输出

2020-10-30 14:06:10 137

原创 在数组中找到出现次数大于n/k的数

在数组中找到出现次数大于n/k的数题目描述给定一个整型数组arr,再给定一个整数k,打印所有出现次数大于n/k的数,如果没有这样的数,请打印”-1“。输入描述:输入包含两行,第一行输入包含两个整数n和k(1≤k≤n≤105)(1 \leq k \leq n \leq 10^5)(1≤k≤n≤105),第二行包含n个整数,代表数组arr(1≤arri≤109)arr(1 \leq arr_i \leq 10^9)arr(1≤arri​≤109)。输出描述:输出所有出现次数大于n/k的数,如果没有这

2020-10-26 09:28:23 524

原创 在数组中找到出现次数大于一半的数

在数组中找到出现次数大于一半的数题目描述给定一个整型数组arr,请打印其中出现次数大于一半的数,如果没有这样的数,请输出-1。输入描述:输入包含两行,第一行包含一个整数n(1≤n≤105)n(1 \leq n \leq 10^5)n(1≤n≤105)代表数组长度,第二行包含n个数,代表数组arr(1≤arri≤109)arr(1 \leq arr_i \leq 10^9)arr(1≤arri​≤109)。输出描述:输出一个整数,代表出现次数大于一半的数,如果没有这样的数,请输出‘-1“。示例1

2020-10-25 19:33:15 1539 1

原创 需要排序的最短子数组长度

需要排序的最短子数组长度题目描述给定一个无序数组arr,求出需要排序的最短子数组的长度,对子数组排序后能使得整个数组有序,即为需要排序的数组。例如:arr=[1,5,3,4,2,6,7]返回4,因为只有[5,3,4,2]需要排序。输入描述:输入包含两行,第一行包括一个整数n(1≤n≤105)n(1 \leq n \leq 10^5)n(1≤n≤105)代表数组arr长度,第二行n个整数,代表数组arr(−109≤arri≤109)arr(-10^9 \leq arr_i \leq 10^9)arr(

2020-10-24 14:17:52 475

原创 找到无序数组中最小的k个数

找到无序数组中最小的k个数题目描述给定一个整型数组arr,找到其中最小的k个数。输入描述:输入包含两行,第一行包含两个整数n和k(1≤k≤n≤105)(1 \leq k \leq n \leq 10^5)(1≤k≤n≤105),代表数组arr的长度,第二行包含n个整数,代表数组arr(1≤arri≤109)arr(1 \leq arr_i \leq 10^9)arr(1≤arri​≤109)。输出描述:输出包含一行,k个整数,代表数组中最小的k个整数。示例1输入5 33 5 1 5 2

2020-10-23 20:47:08 690

原创 “之“字形打印矩阵

"之"字形打印矩阵题目描述给定一个矩阵matrix,按照“之”字形的方式打印这个矩阵,如样例所示。输入描述:输入包含多行,第一行包含两个整数n和m(1≤n,m≤200)(1 \leq n,m \leq 200)(1≤n,m≤200),代表矩阵的行数和列数,接下来n行,每行m个整数,代表矩阵matrix(1≤matrix[i][j]≤40000)matrix(1\leq matrix[i][j] \leq 40000)matrix(1≤matrix[i][j]≤40000)。输出描述:输出一行 ,

2020-10-22 15:09:26 158

原创 将正方形矩阵顺时针旋转90度

将正方形矩阵顺时针旋转90度题目描述给定一个n*n的矩阵matrix,请把这个矩阵顺时针转动90度。输入描述:输入包含多行,第一行一个整数n(1≤n≤200)n(1 \leq n \leq 200)n(1≤n≤200),代表矩阵的行数和列数,接下来n行,每行n个整数,代表矩阵matrix(1≤matrix[i][j]≤40000)matrix(1 \leq matrix[i][j] \leq 40000)matrix(1≤matrix[i][j]≤40000)。输出描述:输出旋转后的矩阵(包含n

2020-10-21 13:53:39 1115

原创 转圈打印矩阵

转圈打印矩阵题目描述给定一个整型矩阵matrix,请按照顺时针转圈的方式打印它。输入描述:输入包含多行,第一行两个整数n和m(1≤n,m≤200)(1 \leq n,m \leq 200)(1≤n,m≤200),代表矩阵的行数和列数,接下来n行,每行m个整数,代表矩阵matrix(1≤matrix[i][j]≤105)matrix(1 \leq matrix[i][j] \leq 10^5)matrix(1≤matrix[i][j]≤105)。输出描述:输出包含一行,n*m个整数,代表顺时针转圈

2020-10-20 20:42:30 179

原创 在其它数都出现k次的数组中找到只出现一次的数

在其它数都出现k次的数组中找到只出现一次的数题目描述给定一个整型数组arr和一个大于1的整数k。已知arr中只有1个数出现了一次,其他的数出现k次,请返回出现了1次的数。输入描述:输入包含两行,第一行包含两个整数n和k,1<=n<=105,1<k<=1001<=n<=10^5, 1 < k <= 1001<=n<=105,1<k<=100,n代表数组arr的长度,第二行n个整数,代表数组arr,数组arr中每个数都是32位整数。

2020-10-19 09:30:08 596

原创 数组中值出现了一次的数字

数组中值出现了一次的数字题目描述:给定一个数字arr,其中只有有两个数字出现了奇数次,其它数字都出现了偶数次,按照从小到大顺序输出这两个数。输入描述:输入包含两行,第一行一个整数n(1≤n≤105)n(1 \leq n \leq 10^5)n(1≤n≤105),代表数组arr的长度,第二行n个整数,代表数组arr,arr[i]为32位整数。输出描述:输出出现奇数次的两个数,按照从小到大的顺序。示例1输入41 1 2 3输出2 3示例2输入611 22 11 23 23 4

2020-10-18 13:18:50 127

原创 在其它数出现次数都为偶数的数组中找到出现次数为奇数次的数

在其它数出现次数都为偶数的数组中找到出现次数为奇数次的数题目描述给一个数组arr,其中只有一个数出现了奇数次,其它数出现了偶数次,打印这个数。输入描述:输入包含两行,第一行包含一个整数n(1≤n≤105)n(1 \leq n \leq 10^5)n(1≤n≤105),代表数组arr长度,第二行有n个数,代表arriarr_iarri​为32位整数。输出描述:输出一个整数,代表出现次数为奇数次的那个数。示例1输入53 1 3 1 2输出2示例2输入36 6 3输出3

2020-10-17 13:20:26 813

原创 整数的二进制数表达中有多少个1

整数的二进制数表达中有多少个1题目描述给定一个32位整数n,返回该整数二进制形式1的个数。输入描述:输入一个整数,代表n,n为32为整数。输出描述:输出一个整数,代表n的二进制表达式中1的个数。示例1输入1输出1示例2输入-2输出31备注:时间复杂度O(1)O(1)O(1),额外空间复杂度O(1)O(1)O(1)。题解:若按位进行枚举,则需要枚举32位,效率略微有点低。我们可以只考虑 1 的位,有两种方法可以取得二进制最右边为 1 的位:n &

2020-10-16 13:40:50 170

原创 不用算术运算符实现整数的加减乘除运算

不用算术运算符实现整数的加减乘除运算题目描述:给定两个32位整数a和b。要求不使用算术运算符,分别实现a和b的加减乘除运算。如果给定的a和b执行加减乘除的某些结果本来就会导致数据的溢出,那么你实现的函数不需要对那些结果负责(你的输出和加减乘除溢出的结果保持一致就行)。输入描述:输入一行,包含两个整数a和b(a和b均为32位整数)和一个运算符,运算符为“+”,“-”,“*”,""中的一个。(数据保证不会出现除0的情况)输出描述:输出一个整数,为上述表达式计算出的结果。示例1输入2 * 4

2020-10-15 16:30:11 829

原创 不用做任何比较判断运算符找出两个整数中的较大的值

不用做任何比较判断运算符找出两个整数中的较大的值题目描述给定两个32位整数a和b,返回a和b中较大的,要求不能用任何比较判断运算符。输入描述:输入两个整数a和b,a和b均为32位整数。输出描述:输出一个整数,两个数中较大的那一个。示例1输入1 0输出1题解:两个数字中找到较大的一个,不用比较运算,那么考虑它们的差:假设 c = a - b,其符号位为 sc = ( c >> 31 ) & 1若 c 为正,sc 为 0 ;若 c 为负,sc 为 1 ,那么我

2020-10-14 14:33:41 634 1

原创 不用额外变量交换两个整数的值

不用额外变量交换两个整数的值题目描述:不用额外变量交换两个整数的值。输入描述:输入一行,包含两个整数n和m(−109≤n,m≤109)(-10^9 \leq n,m \leq 10^9)(−109≤n,m≤109)。输出描述:输出交换后的n和m的值。示例1输入2 3输出3 2备注:时间复杂度O(1)O(1)O(1),额外空间复杂度O(1)O(1)O(1)。三行代码:a = a ^ bb = a ^ ba = a ^ b假设 a 与 b 异或的结果为 c ,c 就

2020-10-13 21:07:39 175

原创 字典树的实现

字典树的实现题目描述字典树又称为前缀树或者Trie树,是处理字符串常用的数据结构。假设组成所有单词的字符仅是‘a’~‘z’,请实现字典树的结构,并包含以下四个主要的功能。void insert(String word):添加word,可重复添加;void delete(String word):删除word,如果word添加过多次,仅删除一次;boolean search(String word):查询word是否在字典树中出现过(完整的出现过,前缀式不算);int prefixNumber(Strin

2020-10-12 10:24:58 136

原创 字符串匹配问题

字符串匹配问题题目描述对于字符串str,其中绝对不含有字符’.’和‘’。再给定字符串exp,其中可以含有’.’或’‘’,’’字符不能是exp的首字符,并且任意两个’‘字符不相邻。exp中的’.’代表任何一个字符,exp中的’**’表示’*‘的前一个字符可以有0个或者多个。请写一个函数,判断str是否能被exp匹配(注意:输入的数据不保证合法,但只含小写字母和‘.’和‘’)。输入描述:输入包含两行,两个字符串,分别代表str和exp(1≤lengthexp,lengthstr≤300)(1\leq l

2020-10-11 21:46:54 244

原创 回文最少分割

回文最少分割题目描述给定一个字符串,返回把str全部切割成回文串的最少切割数。输入描述:输入包含一行字符串,代表str(1≤lengthstr≤5000)str(1 \leq length_{str} \leq 5000)str(1≤lengthstr​≤5000)。输出描述:输出一个整数,代表把str全部切割成回文串的最小切割数。示例1输入ABA输出0说明本身是回文串,不需要切割,直接输出0示例2输入ABCBAEEE输出1说明切割1次,变为“ABCBA”和

2020-10-10 15:31:37 561

原创 找到指定类型的新类型字符

找到指定类型的新类型字符题目描述新类型字符的定义如下:1.新类型字符是长度为1或者2的字符串。表现形式可以仅是小写字母,例如,“e”; 也可以是大写字母+小写字母,例如,“Ab”;还可以是大写字母+大写字母,例如,“DC”。现在给定一个字符串str, str 一定是若干新类型字符 正确组合的结果。比如"eaCCBi",由新类型字符"e"、"a”、"CC"和"Bi"拼成。 再给定一个整数k,代表str中的位置。请返回第k个位置的新类型字符。输入描述:输入包含两行,第一行两个整数n,k(1≤n

2020-10-08 12:24:17 144

原创 找到字符串的最长无重复字符子串

找到字符串的最长无重复字符子串题目描述给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有字母都不相同)。输入描述:输入包含两行,第一行包含一个整数n(1≤n≤105)n(1 \leq n \leq 10^5)n(1≤n≤105),代表数组arr的长度,第二行包含n个整数,代表数组arr(1≤arr[i]≤106)arr(1 \leq arr[i] \leq 10^6)arr(1≤arr[i]≤106)。输出描述:输出一个整数,代表arr的最长无重复字符的长度。示例1输入

2020-10-07 16:15:21 412

原创 拼接所有的字符串产生字典序最小的字符串

拼接所有的字符串产生字典序最小的字符串题目描述给定一个字符串的数组strs,请找到一种拼接顺序,使得所有的字符串拼接起来组成的字符串是所有可能性中字典序最小的,并返回这个字符串。输入描述:输入包含多行,第一行包含一个整数n(1≤n≤105)n(1 \leq n \leq 10^5)n(1≤n≤105),代表字符串数组strs的长度,后面n行,每行一个字符串,代表strs[i](保证所有字符串长度都小于10)。输出描述:输出一行,包含一个字符串,代表返回的字典序最小的字符串。示例1输入2a

2020-10-06 19:50:43 1036

原创 0左边必有1的二进制字符串的数量

0左边必有1的二进制字符串的数量题目描述给定一个整数n,求由“0”字符和“1”字符组成的长度为n的所有字符串中,满足“0”字符的左边必有“1”字符的字符串的数量。输入描述:输入一行,包含一个整数n(1≤n≤2∗107)n(1 \leq n \leq2*10^7)n(1≤n≤2∗107)。输出描述:输出一个整数,表示返回的答案,由于字符串的数量巨大,可能会溢出,请输出对2292^{29}229取模后的答案。示例1输入1输出1说明只有“1”满足示例2输入2输出2说

2020-10-05 12:55:53 646

原创 公式字符串求值

公式字符串求值题目描述给定一个字符串str,str表示一个公式,公式里可以有整数,加减乘除和左右括号,返回公式的计算结果(注意:题目中所有运算都是整型运算,向下取整,且保证数据合法,不会出现除0等情况)。输入描述:输出一行字符串,代表str(1≤lengthstr≤1000)str(1 \leq length_{str} \leq 1000)str(1≤lengthstr​≤1000)(保证str计算的结果不会出现除零,int溢出等情况)。输出描述:输出一个整数,代表表达式的计算结果。示例1

2020-10-04 12:59:41 660

原创 括号字符串的最长有效长度

括号字符串的最长有效长度题目描述给定一个括号字符串str,返回最长的能够完全正确匹配括号字符字串的长度。输入描述:输出一行字符串,代表str(1≤lengthstr≤105)str(1 \leq length_{str} \leq 10^5)str(1≤lengthstr​≤105)。输出描述:输出一个整数,代表括号字符串的最长有效长度。示例1输入(()())输出6示例2输入())输出2备注:时间复杂度O(n)O(n)O(n),额外空间复杂度O(n)O(n)O(n

2020-10-03 09:46:08 1929

原创 括号字符串的有效性

括号字符串的有效性题目描述给定一个字符串str,判断是不是整体有效的括号字符串(整体有效:即存在一种括号匹配方案,使每个括号字符均能找到对应的反向括号,且字符串中不包含非括号字符)。输入描述:输入包含一行,代表str(1≤lengthstr≤105)str(1 \leq length_{str} \leq 10^5)str(1≤lengthstr​≤105)。输出描述:输出一行,如果str是整体有效的括号字符串,请输出“YES”,否则输出“NO”。示例1输入(())输出YES示例

2020-10-02 15:26:51 522

原创 添加最少的字符让字符串变成回文串(2)

添加最少的字符让字符串变成回文串(2)题目描述给定一个字符串str,再给定str的最长回文子序列字符串strlps, 请返回在添加字符最少的情况下,让str整体都是回文字符串的一种结果。进阶问题比原问题多了一个参数,请做到时间复杂度比原问题的实现低。输入描述:输出包含两行,第一行包含一个字符串代表str(1≤lengthstr≤5000)str(1 \leq length_{str} \leq 5000)str(1≤lengthstr​≤5000),第二行包含一个字符串,代表strips。输出描述

2020-10-01 16:47:22 717

空空如也

空空如也

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

TA关注的人

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