题目 实现RandomizedSet类: RandomizedSet()初始化RandomizedSet对象 boolinsert(intval)当元素val不存在时,向集合中插入该项,并返回true;否则,返回false。 boolremove(intval)当元素val存在时,从集合中移除该项,并返回true;否则,返回false。 intgetRandom()随机返回现有集合中的一项(测试用例保证调用此方法时集合中至少存在一个元素)。每个元素应该有相同的概率被返回。 你必须实现类的所有函数,并满足每个函数的平均时间复杂度为O(1)。   示例: 输入 ["Randomi...

题目 RandomizedCollection是一种包含数字集合(可能是重复的)的数据结构。它应该支持插入和删除特定元素,以及删除随机元素。 实现RandomizedCollection类: RandomizedCollection()初始化空的RandomizedCollection对象。 boolinsert(intval)将一个val项插入到集合中,即使该项已经存在。如果该项不存在,则返回true,否则返回false。 boolremove(intval)如果存在,从集合中移除一个val项。如果该项存在,则返回true,否则返回false。注意,如果val在集合中出现多次,我们只删除...

题目 给你一个单链表,随机选择链表的一个节点,并返回相应的节点值。每个节点被选中的概率一样。 实现Solution类: Solution(ListNodehead)使用整数数组初始化对象。 intgetRandom()从链表中随机选择一个节点并返回该节点的值。链表中所有节点被选中的概率相等。   示例: 输入 ["Solution","getRandom","getRandom","getRandom","getRandom","getRandom"] [[[1,2,3]],[],[],[],[],[]] 输出 [null,1,3,2,2,3] 解释 Solutionso...

题目 猜数字游戏的规则如下: 每轮游戏,我都会从1到n随机选择一个数字。请你猜选出的是哪个数字。 如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了。 你可以通过调用一个预先定义好的接口intguess(intnum)来获取猜测结果,返回值一共有3种可能的情况(-1,1或0): -1:我选出的数字比你猜的数字小pick<num 1:我选出的数字比你猜的数字大pick>num 0:我选出的数字和你猜的数字一样。恭喜!你猜对了!picknum 返回我选出的数字。   示例1: 输入:n=10,pick=6 输出:6 示例2: 输入:n=1,pick...

题目 给你两个整数a和b,不使用运算符+和,计算并返回两整数之和。   示例1: 输入:a=1,b=2 输出:3 示例2: 输入:a=2,b=3 输出:5 代码实现 classSolution{ publicintgetSum(inta,intb){ while(b!=0){ intcarry=(a&b)<<1; a=a^b; b=carry; } returna; } }

题目 给你一个mxn的矩阵matrix和一个整数k,找出并返回矩阵内部矩形区域的不超过k的最大数值和。 题目数据保证总会存在一个数值和不超过k的矩形区域。   示例1: 输入:matrix=[[1,0,1],[0,-2,3]],k=2 输出:2 解释:蓝色边框圈出来的矩形区域[[0,1],[-2,3]]的数值和是2,且2是不超过k的最大数字(k=2)。 示例2: 输入:matrix=[[2,2,-1]],k=3 输出:3 代码实现 classSolution{ publicintmaxSumSubmatrix(int[][]matrix,intk){ intans=I...

题目 给你一个整数n,统计并返回各位数字都不同的数字x的个数,其中0<=x<10n。   示例1: 输入:n=2 输出:91 解释:答案应为除去11、22、33、44、55、66、77、88、99外,在0≤x<100范围内的所有数字。  示例2: 输入:n=0 代码实现 classSolution{ publicintcountNumbersWithUniqueDigits(intn){ if(n0){ return1; } if(n1){ return10; } intres=10,cur=9; for(inti=0;i<n1;i){ cu...

  x0PjmkQUo097   2023年12月07日   14   0   0 i++i++代码实现git代码实现git

题目 给你一个二维整数数组envelopes,其中envelopes[i]=[wi,hi],表示第i个信封的宽度和高度。 当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。 请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。 注意:不允许旋转信封。   示例1: 输入:envelopes=[[5,4],[6,4],[6,7],[2,3]] 输出:3 解释:最多信封的个数为3,组合为:[2,3]=>[5,4]=>[6,7]。 示例2: 输入:envelopes=[[1,1]...

题目 给定一个mxn整数矩阵matrix,找出其中最长递增路径的长度。 对于每个单元格,你可以往上,下,左,右四个方向移动。你不能在对角线方向上移动或移动到边界外(即不允许环绕)。   示例1: 输入:matrix=[[9,9,4],[6,6,8],[2,1,1]] 输出:4  解释:最长递增路径为[1,2,6,9]。 示例2: 输入:matrix=[[3,4,5],[3,2,6],[2,2,1]] 输出:4  解释:最长递增路径是[3,4,5,6]。注意不允许在对角线方向上移动。 示例3: 输入:matrix=[[1]] 输出:1 代码实现 ...

  x0PjmkQUo097   2023年12月04日   15   0   0 代码实现MathMath代码实现

题目 给你一个整数数组nums以及两个整数lower和upper。求数组中,值位于范围[lower,upper](包含lower和upper)之内的区间和的个数。 区间和S(i,j)表示在nums中,位置从i到j的元素之和,包含i和j(i≤j)。   示例1: 输入:nums=[-2,5,-1],lower=-2,upper=2 输出:3 解释:存在三个区间:[0,0]、[2,2]和[0,2],对应的区间和分别是:-2、-1、2。 示例2: 输入:nums=[0],lower=0,upper=0 输出:1 代码实现 classSolution{ publicintcount...

题目 给你一个整数数组nums,将它重新排列成nums[0]<nums[1]>nums[2]<nums[3]...的顺序。 你可以假设所有输入数组都可以得到满足题目要求的结果。   示例1: 输入:nums=[1,5,1,1,6,4] 输出:[1,6,1,5,1,4] 解释:[1,4,1,5,1,6]同样是符合题目要求的结果,可以被判题程序接受。 示例2: 输入:nums=[1,3,2,2,3,1] 输出:[2,3,1,3,1,2] 代码实现 classSolution{ publicvoidwiggleSort(int[]nums){ int[]arr...

  x0PjmkQUo097   2023年11月22日   13   0   0 代码实现数组数组代码实现

题目 给你一个整数数组coins,表示不同面额的硬币;以及一个整数amount,表示总金额。 计算并返回可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。 你可以认为每种硬币的数量是无限的。   示例1: 输入:coins=[1,2,5],amount=11 输出:3  解释:11=5+5+1 示例2: 输入:coins=[2],amount=3 输出:-1 示例3: 输入:coins=[1],amount=0 输出:0 代码实现 publicclassSolution{ publicintcoinChange(int[]...

  x0PjmkQUo097   2023年11月21日   17   0   0 代码实现数组数组代码实现

题目 给定长度分别为m和n的两个数组,其元素由0-9构成,表示两个自然数各位上的数字。现在从这两个数组中选出k(k<=m+n)个数字拼接成一个新的数,要求从同一个数组中取出的数字保持其在原数组中的相对顺序。 求满足该条件的最大数。结果返回一个表示该最大数的长度为k的数组。 说明:请尽可能地优化你算法的时间和空间复杂度。 示例1: 输入: nums1=[3,4,6,5] nums2=[9,1,2,5,8,3] k=5 输出: [9,8,6,5,3] 示例2: 输入: nums1=[6,7] nums2=[6,0,4] k=5 输出: [6,7,6,0,4] 示例3: 输入: n...

  x0PjmkQUo097   2023年11月20日   13   0   0 i++i++Math数组数组Math

题目 初始时有n个灯泡处于关闭状态。第一轮,你将会打开所有灯泡。接下来的第二轮,你将会每两个灯泡关闭第二个。 第三轮,你每三个灯泡就切换第三个灯泡的开关(即,打开变关闭,关闭变打开)。第i轮,你每i个灯泡就切换第i个灯泡的开关。直到第n轮,你只需要切换最后一个灯泡的开关。 找出并返回n轮后有多少个亮着的灯泡。   示例1: 输入:n=3 输出:1  解释: 初始时,灯泡状态[关闭,关闭,关闭]. 第一轮后,灯泡状态[开启,开启,开启]. 第二轮后,灯泡状态[开启,关闭,开启]. 第三轮后,灯泡状态[开启,关闭,关闭].  你应该返回1,因为只有一个...

  x0PjmkQUo097   2023年11月19日   18   0   0 代码实现MathMath代码实现

题目 给你一个字符串数组words,找出并返回length(words[i])length(words[j])的最大值,并且这两个单词不含有公共字母。如果不存在这样的两个单词,返回0。   示例1: 输入:words=["abcw","baz","foo","bar","xtfn","abcdef"] 输出:16  解释:这两个单词为"abcw","xtfn"。 示例2: 输入:words=["a","ab","abc","d","cd","bcd","abcd"] 输出:4  解释:这两个单词为"ab","cd"。 示例3: 输入:words=["a"...

  x0PjmkQUo097   2023年11月18日   24   0   0 i++i++MathbcMathbc

题目 给你一个字符串s,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证返回结果的字典序最小(要求不能打乱其他字符的相对位置)。   示例1: 输入:s="bcabc" 输出:"abc" 示例2: 输入:s="cbacdcbc" 输出:"acdb"   代码实现 classSolution{ publicStringremoveDuplicateLetters(Strings){ boolean[]vis=newboolean[26]; int[]num=newint[26]; for(inti=0;i<s.length();i){ num[s.c...

  x0PjmkQUo097   2023年11月17日   21   0   0 i++字符串i++bc字符串bc

题目 累加数是一个字符串,组成它的数字可以形成累加序列。 一个有效的累加序列必须至少包含3个数。除了最开始的两个数以外,序列中的每个后续数字必须是它之前两个数字之和。 给你一个只包含数字'0'-'9'的字符串,编写一个算法来判断给定输入是否是累加数。如果是,返回true;否则,返回false。 说明:累加序列里的数,除数字0之外,不会以0开头,所以不会出现1,2,03或者1,02,3的情况。   示例1: 输入:"112358" 输出:true  解释:累加序列为:1,1,2,3,5,8。1+1=2,1+2=3,2+3=5,3+5=8 示例2: 输入:"199...

题目 给你一个数组nums,请你完成两类查询。 其中一类查询要求更新数组nums下标对应的值 另一类查询要求返回数组nums中索引left和索引right之间(包含)的nums元素的和,其中left<=right 实现NumArray类: NumArray(int[]nums)用整数数组nums初始化对象 voidupdate(intindex,intval)将nums[index]的值更新为val intsumRange(intleft,intright)返回数组nums中索引left和索引right之间(包含)的nums元素的和(即,nums[left]+nums[left+1]...

  x0PjmkQUo097   2023年11月15日   15   0   0 取整Math数组取整数组Math

题目 有n个气球,编号为0到n1,每个气球上都标有一个数字,这些数字存在数组nums中。 现在要求你戳破所有的气球。戳破第i个气球,你可以获得nums[i1]nums[i]nums[i+1]枚硬币。这里的i1和i+1代表和i相邻的两个气球的序号。如果i1或i+1超出了数组的边界,那么就当它是一个数字为1的气球。 求所能获得硬币的最大数量。   示例1: 输入:nums=[3,1,5,8] 输出:167 解释: nums=[3,1,5,8]-->[3,5,8]-->[3,8]-->[8]-->[] coins= 315  +...

  x0PjmkQUo097   2023年11月15日   40   0   0 i++i++Math数组数组Math

题目 超级丑数是一个正整数,并满足其所有质因数都出现在质数数组primes中。 给你一个整数n和一个整数数组primes,返回第n个超级丑数。 题目数据保证第n个超级丑数在32-bit带符号整数范围内。   示例1: 输入:n=12,primes=[2,7,13,19] 输出:32  解释:给定长度为4的质数数组primes=[2,7,13,19],前12个超级丑数序列为:[1,2,4,7,8,13,14,16,19,26,28,32]。 示例2: 输入:n=1,primes=[2,3,5] 输出:1 解释:1不含质因数,因此它的所有质因数都在质数数组prime...

关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~